+
    )i1                        ^ RI t ^ RIt^ RIt^ RIHt ^ RIHtHt  ! R R4      t	 ! R R]	4      t
 ! R R	]	4      t ! R
 R]4      tR tR tR tR tR# )    N)GraphMLWriter)edges_equalnodes_equalc                   0   a  ] tR t^
t o ]R 4       tRtV tR# )BaseGraphMLc                   R V n         \        P                  ! 4       V n        V P                  P	                  R4       V P                  P                  RRRR7       V P                  P                  RR4       V P                  P                  . R<O4       \        P                  ! V P                   P                  R
4      4      V n
        RV n        \        P                  ! RR7      V n        RR/V P                  P                  R&   V P                  P	                  RRR7       V P                  P	                  RRR7       V P                  P	                  RRR7       V P                  P	                  R	4       V P                  P	                  RRR7       V P                  P                  RRRRR7       V P                  P                  RRRRR7       V P                  P                  RRRRR7       V P                  P                  RRRR7       V P                  P                  RR	RR7       V P                  P                  RRRR7       V P                  P                  RR	RRR7       \        P                  ! V P                  P                  R
4      4      V n        R V n        \        P                  ! RR7      V n        R!R"R#^ R$^ R%R&R'R&R(R)/V P                   P                  R&   V P                   P	                  R4       V P                   P	                  R4       V P                   P                  RRRR7       \        P                  ! V P                  P                  R
4      4      V n        R*V n        \        P                  ! 4       V n        V P&                  P	                  R+R,R-R.7       V P&                  P	                  R/R0R-R.7       V P&                  P                  R+R/R1R27       \        P                  ! V P$                  P                  R
4      4      pWn        R3V n        \        P                  ! 4       V n        V P,                  P	                  R^R47       V P,                  P	                  RRR47       V P,                  P                  RR^R47       V P,                  P                  RRRR47       \        P                  ! V P*                  P                  R
4      4      pWn        R5V n        \        P2                  ! 4       V n        V P4                  P	                  R4       V P4                  P                  RRRR7       V P4                  P                  R:R;.4       \        P                  ! V P0                  P                  R
4      4      pWn        R6V n        \        P:                  ! 4       V n        V P<                  P	                  R4       V P<                  P                  RRRR7       V P<                  P                  RRRR7       V P<                  P                  RRRR7       \        P                  ! V P8                  P                  R
4      4      pWn        R7V n         \        P:                  ! 4       V n!        V PB                  P	                  R4       V PB                  P                  RRRR7       V PB                  P                  RRRR7       V PB                  P                  RRRR7       \        P                  ! V P@                  P                  R
4      4      pWn"        R8V n#        \        P:                  ! 4       V n$        V PH                  P	                  R4       V PH                  P                  RR4       V PH                  P                  RRRR7       V PH                  P                  RRRR7       \        P                  ! V PF                  P                  R
4      4      pWn%        R9# )=a  <?xml version="1.0" encoding="UTF-8"?>
<!-- This file was written by the JAVA GraphML Library.-->
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <graph id="G" edgedefault="directed">
    <node id="n0"/>
    <node id="n1"/>
    <node id="n2"/>
    <node id="n3"/>
    <node id="n4"/>
    <node id="n5"/>
    <node id="n6"/>
    <node id="n7"/>
    <node id="n8"/>
    <node id="n9"/>
    <node id="n10"/>
    <edge id="foo" source="n0" target="n2"/>
    <edge source="n1" target="n2"/>
    <edge source="n2" target="n3"/>
    <edge source="n3" target="n5"/>
    <edge source="n3" target="n4"/>
    <edge source="n4" target="n6"/>
    <edge source="n6" target="n5"/>
    <edge source="n5" target="n7"/>
    <edge source="n6" target="n8"/>
    <edge source="n8" target="n7"/>
    <edge source="n8" target="n9"/>
  </graph>
</graphml>n10n0n2foo)idn1n3n5n4UTF-8a  <?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
        http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <key id="d0" for="node" attr.name="color" attr.type="string">
    <default>yellow</default>
  </key>
  <key id="d1" for="edge" attr.name="weight" attr.type="double"/>
  <graph id="G" edgedefault="directed">
    <node id="n0">
      <data key="d0">green</data>
    </node>
    <node id="n1"/>
    <node id="n2">
      <data key="d0">blue</data>
    </node>
    <node id="n3">
      <data key="d0">red</data>
    </node>
    <node id="n4"/>
    <node id="n5">
      <data key="d0">turquoise</data>
    </node>
    <edge id="e0" source="n0" target="n2">
      <data key="d1">1.0</data>
    </edge>
    <edge id="e1" source="n0" target="n1">
      <data key="d1">1.0</data>
    </edge>
    <edge id="e2" source="n1" target="n3">
      <data key="d1">2.0</data>
    </edge>
    <edge id="e3" source="n3" target="n2"/>
    <edge id="e4" source="n2" target="n4"/>
    <edge id="e5" source="n3" target="n5"/>
    <edge id="e6" source="n5" target="n4">
      <data key="d1">1.1</data>
    </edge>
  </graph>
</graphml>
Gcoloryellownode_defaultgreen)r   bluered	turquoisee0g      ?)r   weighte1e2g       @e3e4e5e6皙?a  <?xml version="1.0" encoding="UTF-8"?>
        <graphml xmlns="http://graphml.graphdrawing.org/xmlns"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
                http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
          <key id="d0" for="node" attr.name="boolean_attribute" attr.type="boolean"><default>false</default></key>
          <key id="d1" for="node" attr.name="int_attribute" attr.type="int"><default>0</default></key>
          <key id="d2" for="node" attr.name="long_attribute" attr.type="long"><default>0</default></key>
          <key id="d3" for="node" attr.name="float_attribute" attr.type="float"><default>0.0</default></key>
          <key id="d4" for="node" attr.name="double_attribute" attr.type="double"><default>0.0</default></key>
          <key id="d5" for="node" attr.name="string_attribute" attr.type="string"><default>Foo</default></key>
          <graph id="G" edgedefault="directed">
            <node id="n0"/>
            <node id="n1"/>
            <edge id="e0" source="n0" target="n1"/>
          </graph>
        </graphml>
        boolean_attributeFint_attributelong_attributefloat_attributeg        double_attributestring_attributeFooaV  <?xml version='1.0' encoding='utf-8'?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <key id="edge_prop" for="edge" attr.name="edge_prop" attr.type="string"/>
  <key id="prop2" for="node" attr.name="prop2" attr.type="string"/>
  <key id="prop1" for="node" attr.name="prop1" attr.type="string"/>
  <graph edgedefault="directed">
    <node id="0">
      <data key="prop1">val1</data>
      <data key="prop2">val2</data>
    </node>
    <node id="1">
      <data key="prop1">val_one</data>
      <data key="prop2">val2</data>
    </node>
    <edge source="0" target="1">
      <data key="edge_prop">edge_value</data>
    </edge>
  </graph>
</graphml>
0val1val2)prop1prop21val_one
edge_value)	edge_propaC  <?xml version='1.0' encoding='utf-8'?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <key attr.name="weight" attr.type="double" for="node" id="d1" />
  <key attr.name="weight" attr.type="double" for="edge" id="d0" />
  <graph edgedefault="directed">
    <node id="n0">
      <data key="d1">1</data>
    </node>
    <node id="n1">
      <data key="d1">2.0</data>
    </node>
    <edge source="n0" target="n1">
      <data key="d0">1</data>
    </edge>
    <edge source="n1" target="n0">
      <data key="d0">k</data>
    </edge>
    <edge source="n1" target="n1">
      <data key="d0">1.0</data>
    </edge>
  </graph>
</graphml>
r   a  <?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <graph id="G">
    <node id="n0"/>
    <node id="n1"/>
    <node id="n2"/>
    <node id="n10"/>
    <edge id="foo" source="n0" target="n2"/>
    <edge source="n1" target="n2"/>
    <edge source="n2" target="n3"/>
  </graph>
</graphml>a  <?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <graph id="G">
    <node id="n0"/>
    <node id="n1"/>
    <node id="n2"/>
    <node id="n10"/>
    <edge id="e0" source="n0" target="n2"/>
    <edge id="e1" source="n1" target="n2"/>
    <edge id="e2" source="n2" target="n1"/>
  </graph>
</graphml>a  <?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <graph id="G">
    <node id="n0"/>
    <node id="n1"/>
    <node id="n2"/>
    <node id="n10"/>
    <edge id="e0" source="n0" target="n2"/>
    <edge id="e1" source="n1" target="n2"/>
    <edge id="e2" source="n2" target="n3"/>
  </graph>
</graphml>a  <?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <graph id="G">
    <node id="n0"/>
    <node id="n1"/>
    <node id="n2"/>
    <node id="n10"/>
    <edge source="n0" target="n2"/>
    <edge id="e1" source="n1" target="n2"/>
    <edge id="e2" source="n2" target="n1"/>
  </graph>
</graphml>Nr   r   r   r   )
r5   r6   )r   r   )r   r   )r   n6)r7   r   )r   n7)r7   n8)r9   r8   )r9   n9)&simple_directed_datanxDiGraphsimple_directed_graphadd_nodeadd_edgeadd_edges_fromioBytesIOencodesimple_directed_fhattribute_dataattribute_graphgraphattribute_fhnode_attribute_default_datanode_attribute_default_graphnode_attribute_default_fhattribute_named_key_ids_dataattribute_named_key_ids_graphattribute_named_key_ids_fhattribute_numeric_type_dataattribute_numeric_type_graphattribute_numeric_type_fhsimple_undirected_dataGraphsimple_undirected_graphsimple_undirected_fhundirected_multigraph_data
MultiGraphundirected_multigraphundirected_multigraph_fh'undirected_multigraph_no_multiedge_data"undirected_multigraph_no_multiedge%undirected_multigraph_no_multiedge_fh'multigraph_only_ids_for_multiedges_data"multigraph_only_ids_for_multiedges%multigraph_only_ids_for_multiedges_fh)clsfhs   & c/var/www/html/photoedit/myenv/lib/python3.14/site-packages/networkx/readwrite/tests/test_graphml.pysetup_classBaseGraphML.setup_class   s   $ > %'JJL!!!**51!!**4%*@!!**46!!00	
 "$C,D,D,K,KG,T!U)T !jjC05<h4G!!.1$$T$9$$T$8$$T$7$$T*$$T$=$$T4D$E$$T4D$E$$T4D$E$$T4D$9$$T4D$9$$T4D$9$$T4D$E::c&8&8&?&?&HI+'$ ,.::+=(QasB
((..~> 	((11$7((11$7((11$1F(*

++227;)
%,(. -/JJL)))223fF2S))223iv2V))223|2TZZ88??HI)+&+'4 ,.::<(((11$q1A((11$s1C((11$Q1G((11$S1IZZ77>>wGH(*%&"  ')hhj###,,U3##,,T4E,B##22L,3OPZZ2299'BC#% *& %'MMO!!!**51!!**4$*?!!**4$*?!!**4$*?ZZ66==gFG')$73 24...77>..77dt7L..77dt7L..77dt7LZZCCJJ7ST46173 24...77>..77dC..77dt7L..77dt7LZZCCJJ7ST461     N)__name__
__module____qualname____firstlineno__classmethodrd   __static_attributes____classdictcell____classdict__s   @rc   r   r   
   s     j7 j7rf   r   c                      a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tRtV tR# )TestReadGraphMLi9  c                x   V P                   p\        P                  ! V P                  4      p\	        VP                  4       4      \	        VP                  4       4      8X  g   Q h\	        VP                  4       4      \	        VP                  4       4      8X  g   Q h\	        VP                  R R7      4      \	        VP                  R R7      4      8X  g   Q hV P                  P                  ^ 4       \        P                  ! V P                  4      p\	        VP                  4       4      \	        VP                  4       4      8X  g   Q h\	        VP                  4       4      \	        VP                  4       4      8X  g   Q h\	        VP                  R R7      4      \	        VP                  R R7      4      8X  g   Q hR# TdataN)
r>   r<   read_graphmlrE   sortednodesedgesseekparse_graphmlr;   selfr   HPGs   &   rc   !test_read_simple_directed_graphml1TestReadGraphML.test_read_simple_directed_graphml:  s7   &&OOD334aggi F1779$5555aggi F1779$5555agg4g()VAGGG4F-GGGG$$Q'd778aggi F288:$6666aggi F288:$6666agg4g()VBHH$H4G-HHHHrf   c                T   V P                   p\        P                  ! V P                  4      p\	        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       4      '       g   Q hV P                  P                  ^ 4       \        P                  ! V P                  4      p\	        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       4      '       g   Q hR# r   N)rU   r<   rw   rV   r   ry   r   rz   r{   r|   rS   r}   s   &   rc   #test_read_simple_undirected_graphml3TestReadGraphML.test_read_simple_undirected_graphmlG  s    ((OOD5561779aggi00001779aggi0000!!&&q)d99:1779bhhj11111779bhhj1111rf   c                T   V P                   p\        P                  ! V P                  4      p\	        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       4      '       g   Q hV P                  P                  ^ 4       \        P                  ! V P                  4      p\	        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       4      '       g   Q hR# r   )rY   r<   rw   rZ   r   ry   r   rz   r{   r|   rW   r}   s   &   rc   'test_read_undirected_multigraph_graphml7TestReadGraphML.test_read_undirected_multigraph_graphmlR  s    &&OOD99:1779aggi00001779aggi0000%%**1-d==>1779bhhj11111779bhhj1111rf   c                T   V P                   p\        P                  ! V P                  4      p\	        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       4      '       g   Q hV P                  P                  ^ 4       \        P                  ! V P                  4      p\	        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       4      '       g   Q hR# r   )r\   r<   rw   r]   r   ry   r   rz   r{   r|   r[   r}   s   &   rc   4test_read_undirected_multigraph_no_multiedge_graphmlDTestReadGraphML.test_read_undirected_multigraph_no_multiedge_graphml]      33OODFFG1779aggi00001779aggi00002277:dJJK1779bhhj11111779bhhj1111rf   c                T   V P                   p\        P                  ! V P                  4      p\	        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       4      '       g   Q hV P                  P                  ^ 4       \        P                  ! V P                  4      p\	        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       4      '       g   Q hR# r   )r_   r<   rw   r`   r   ry   r   rz   r{   r|   r^   r}   s   &   rc   ?test_read_undirected_multigraph_only_ids_for_multiedges_graphmlOTestReadGraphML.test_read_undirected_multigraph_only_ids_for_multiedges_graphmlh  r   rf   c           	        V P                   p\        P                  ! V P                  4      p\	        VP                  R 4      \        VP                  R R7      4      4      '       g   Q h\        VP                  R R7      4      p\        VP                  R R7      4      p\        W44       F  w  rVWV8X  d   K  Q h	  V P                  P                  ^ 4       \        P                  ! V P                  4      p\        VP                  R 4      4      \        VP                  R R7      4      8X  g   Q h\        VP                  R R7      4      p\        VP                  R R7      4      p\        W44       F  w  rVWV8X  d   K  Q h	  R# rt   )rG   r<   rw   rI   r   ry   rx   rz   zipr{   r|   rF   )r~   r   r   geheabr   s   &       rc   test_read_attribute_graphml+TestReadGraphML.test_read_attribute_graphmls  s'     OOD--.1774=&d1C*DEEEEAGGG&'AGGG&'KDA6M6  q!d112aggdm$rxxTx/B(CCCCAGGG&'BHH$H'(KDA6M6  rf   c                    V P                   p\        P                  ! V P                  4      pVP                  R ,          VP                  R ,          8X  g   Q hR# )r   N)rK   r<   rw   rL   rH   )r~   r   r   s   &  rc   #test_node_default_attribute_graphml3TestReadGraphML.test_node_default_attribute_graphml  sA    --OOD::;ww~&!''.*AAAArf   c                $   R p\         P                  ! VP                  R4      4      p\        P                  ! \
        P                  \
        P                  V4       \        P                  ! \
        P                  \
        P                  V4       R# )a  <?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <graph id="G">
    <node id="n0"/>
    <node id="n1"/>
    <node id="n2"/>
    <edge source="n0" target="n1"/>
    <edge source="n1" target="n2" directed='true'/>
  </graph>
</graphml>r   N	rB   rC   rD   pytestraisesr<   NetworkXErrorrw   r|   r~   srb   s   &  rc    test_directed_edge_in_undirected0TestReadGraphML.test_directed_edge_in_undirected  X     ZZ)*b&&<b&&(8(8!<rf   c                $   R p\         P                  ! VP                  R4      4      p\        P                  ! \
        P                  \
        P                  V4       \        P                  ! \
        P                  \
        P                  V4       R# )a  <?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <graph id="G" edgedefault='directed'>
    <node id="n0"/>
    <node id="n1"/>
    <node id="n2"/>
    <edge source="n0" target="n1"/>
    <edge source="n1" target="n2" directed='false'/>
  </graph>
</graphml>r   Nr   r   s   &  rc    test_undirected_edge_in_directed0TestReadGraphML.test_undirected_edge_in_directed  r   rf   c                $   R p\         P                  ! VP                  R4      4      p\        P                  ! \
        P                  \
        P                  V4       \        P                  ! \
        P                  \
        P                  V4       R# )a  <?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <key id="d0" for="node" attr.name="color" attr.type="string">
    <default>yellow</default>
  </key>
  <key id="d1" for="edge" attr.name="weight" attr.type="double"/>
  <graph id="G" edgedefault="directed">
    <node id="n0">
      <data key="d0">green</data>
    </node>
    <node id="n1"/>
    <node id="n2">
      <data key="d0">blue</data>
    </node>
    <edge id="e0" source="n0" target="n2">
      <data key="d2">1.0</data>
    </edge>
  </graph>
</graphml>
r   Nr   r   s   &  rc   test_key_raiseTestReadGraphML.test_key_raise  sX    . ZZ)*b&&<b&&(8(8!<rf   c                $   R p\         P                  ! VP                  R4      4      p\        P                  ! \
        P                  \
        P                  V4       \        P                  ! \
        P                  \
        P                  V4       R# )a5  <?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <key id="d0" for="node" attr.name="color" attr.type="string">
    <default>yellow</default>
  </key>
  <key id="d1" for="edge" attr.name="weight" attr.type="double"/>
  <graph id="G" edgedefault="directed">
    <node id="n0">
      <data key="d0">green</data>
    </node>
    <node id="n1"/>
    <node id="n2">
      <data key="d0">blue</data>
    </node>
    <hyperedge id="e0" source="n0" target="n2">
       <endpoint node="n0"/>
       <endpoint node="n1"/>
       <endpoint node="n2"/>
    </hyperedge>
  </graph>
</graphml>
r   Nr   r   s   &  rc   test_hyperedge_raise$TestReadGraphML.test_hyperedge_raise  sX    2 ZZ)*b&&<b&&(8(8!<rf   c                ^   R p\         P                  ! VP                  R4      4      p\        P                  ! V4      pRR.p\        VP                  RR7      4      V8X  g   Q hVP                  ^ 4       \        P                  ! V4      p\        VP                  RR7      4      V8X  g   Q hR# )a  <?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <graph id="G" edgedefault="directed">
    <node id="n0"/>
    <node id="n1"/>
    <edge id="e0" source="n0" target="n1"/>
    <edge id="e1" source="n0" target="n1"/>
  </graph>
</graphml>
r   TkeysN)r
   r   r   )r
   r   r   )	rB   rC   rD   r<   rw   rx   rz   r{   r|   r~   r   rb   r   expectedr   s   &     rc   test_multigraph_keys$TestReadGraphML.test_multigraph_keys  s     ZZ)*OOB&(:;agg4g()X555

Qagg4g()X555rf   c                   \         P                  ! 4       pVP                  ^4       VP                  ^4       VP                  R^^RR/3^^RR/3^^RRRR/3^^^gRR/3^^^hRR/3^^^iRR	RR
/3.4       \        P
                  ! 4       p\         P                  ! W4       VP                  ^ 4       \         P                  ! V\        R7      p\        VP                  RRR7      VP                  RRR7      4      '       g   Q hVP                  VP                  8X  g   Q hVP                  P                  4        UUUUUU	u/ uFm  w  rE\        V4      VP                  4        UUUU	u/ uF=  w  rg\        V4      VP                  4        UU	u/ uF  w  r\        V4      V	bK  	  up	pbK?  	  up	pppbKo  	  p
pppppp	VP                  ^ 4       \         P                  ! V\        \        R7      pWP                  8X  g   Q hVP                  ^ 4       VP                  4       p\         P                   ! V\        \        R7      pWP                  8X  g   Q hR# u up	pi u up	pppi u up	pppppi )zN
Test that data and keys of edges are preserved on consequent
write and reads
key	data_key1r   data_id2	data_key3data_id3	data_key4data_id5	data_key6data_id7	node_typeT)rv   r   )r   edge_key_typeN)      )r<   rX   r?   rA   rB   rC   write_graphmlr{   rw   intr   rz   _adjitemsstrreadr|   )r~   r   rb   r   nodenbr_dictnbrkey_dictekeyddGadjHH	string_fhs   &            rc   test_preserve_multi_edge_data-TestReadGraphML.test_preserve_multi_edge_data  s#   
 MMO	

1	

1	 A{+,Aj)*A{D*=>AsUK01AsT:./AsUKzBC	
 ZZ\


OOB#.177478!''tRV':WXXXXvv #$&&,,.
 

 #1	 I%-^^%5%5MC C9IJ9IXT3t9b=9IJJ%5  #1 	 
 	
__R3cBww

GGI	i3cJww K
s*   &I#'$II&"I*
I#II#c                F   R p\         P                  ! VP                  R4      4      p\        P                  ! VRR7      p\        VP                  4       4      R.8X  g   Q hVP                  RRRR7      '       g   Q hVP                  R,          R,          R	8X  g   Q hVP                  R,          R,          R
8X  g   Q hVP                  R,          R,          R8X  g   Q hVP                  R,          R,          R8X  g   Q hVP                  R,          R,          R8X  g   Q hVP                  R,          R,          R8X  g   Q hVP                  R,          R,          R8X  g   Q hVP                  ^ 4       \        P                  ! V4      p\        VP                  4       4      R.8X  g   Q hVR,          R,          R,          R8X  g   Q hVP                  R,          R,          R	8X  g   Q hVP                  R,          R,          R
8X  g   Q hVP                  R,          R,          R8X  g   Q hVP                  R,          R,          R8X  g   Q hVP                  R,          R,          R8X  g   Q hVP                  R,          R,          R8X  g   Q hVP                  R,          R,          R8X  g   Q h\        P                  ! VRR7      p\        VP                  4       4      R.8X  g   Q hVP                  RRRR7      '       g   Q hVP                  R,          R,          R	8X  g   Q hVP                  R,          R,          R
8X  g   Q hVP                  R,          R,          R8X  g   Q h\        P                  ! V4      p\        VP                  4       4      R.8X  g   Q hVR,          R,          R,          R8X  g   Q hVP                  R,          R,          R	8X  g   Q hVP                  R,          R,          R
8X  g   Q hVP                  R,          R,          R8X  g   Q hR# )aI  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:y="http://www.yworks.com/xml/graphml"
         xmlns:yed="http://www.yworks.com/xml/yed/3"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <!--Created by yFiles for Java 2.7-->
  <key for="graphml" id="d0" yfiles.type="resources"/>
  <key attr.name="url" attr.type="string" for="node" id="d1"/>
  <key attr.name="description" attr.type="string" for="node" id="d2"/>
  <key for="node" id="d3" yfiles.type="nodegraphics"/>
  <key attr.name="Description" attr.type="string" for="graph" id="d4">
    <default/>
  </key>
  <key attr.name="url" attr.type="string" for="edge" id="d5"/>
  <key attr.name="description" attr.type="string" for="edge" id="d6"/>
  <key for="edge" id="d7" yfiles.type="edgegraphics"/>
  <graph edgedefault="directed" id="G">
    <node id="n0">
      <data key="d3">
        <y:ShapeNode>
          <y:Geometry height="30.0" width="30.0" x="125.0" y="100.0"/>
          <y:Fill color="#FFCC00" transparent="false"/>
          <y:BorderStyle color="#000000" type="line" width="1.0"/>
          <y:NodeLabel alignment="center" autoSizePolicy="content"
           borderDistance="0.0" fontFamily="Dialog" fontSize="13"
           fontStyle="plain" hasBackgroundColor="false" hasLineColor="false"
           height="19.1328125" modelName="internal" modelPosition="c"
           textColor="#000000" visible="true" width="12.27099609375"
           x="8.864501953125" y="5.43359375">1</y:NodeLabel>
          <y:Shape type="rectangle"/>
        </y:ShapeNode>
      </data>
    </node>
    <node id="n1">
      <data key="d3">
        <y:ShapeNode>
          <y:Geometry height="30.0" width="30.0" x="183.0" y="205.0"/>
          <y:Fill color="#FFCC00" transparent="false"/>
          <y:BorderStyle color="#000000" type="line" width="1.0"/>
          <y:NodeLabel alignment="center" autoSizePolicy="content"
          borderDistance="0.0" fontFamily="Dialog" fontSize="13"
          fontStyle="plain" hasBackgroundColor="false" hasLineColor="false"
          height="19.1328125" modelName="internal" modelPosition="c"
          textColor="#000000" visible="true" width="12.27099609375"
          x="8.864501953125" y="5.43359375">2</y:NodeLabel>
          <y:Shape type="rectangle"/>
        </y:ShapeNode>
      </data>
    </node>
    <node id="n2">
      <data key="d6" xml:space="preserve"><![CDATA[description
line1
line2]]></data>
      <data key="d3">
        <y:GenericNode configuration="com.yworks.flowchart.terminator">
          <y:Geometry height="40.0" width="80.0" x="950.0" y="286.0"/>
          <y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
          <y:BorderStyle color="#000000" type="line" width="1.0"/>
          <y:NodeLabel alignment="center" autoSizePolicy="content"
          fontFamily="Dialog" fontSize="12" fontStyle="plain"
          hasBackgroundColor="false" hasLineColor="false" height="17.96875"
          horizontalTextPosition="center" iconTextGap="4" modelName="custom"
          textColor="#000000" verticalTextPosition="bottom" visible="true"
          width="67.984375" x="6.0078125" xml:space="preserve"
          y="11.015625">3<y:LabelModel>
          <y:SmartNodeLabelModel distance="4.0"/></y:LabelModel>
          <y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0"
          labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0"
          offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
        </y:GenericNode>
      </data>
    </node>
    <edge id="e0" source="n0" target="n1">
      <data key="d7">
        <y:PolyLineEdge>
          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
          <y:LineStyle color="#000000" type="line" width="1.0"/>
          <y:Arrows source="none" target="standard"/>
          <y:BendStyle smoothed="false"/>
        </y:PolyLineEdge>
      </data>
    </edge>
  </graph>
  <data key="d0">
    <y:Resources/>
  </data>
</graphml>
r   Tforce_multigraphr
   r   r   )r   labelr0   2r   3
shape_type	rectanglezcom.yworks.flowchart.terminatordescriptionzdescription
line1
line2r   N)r
   r   )rB   rC   rD   r<   rw   listrz   has_edgery   r{   r|   )r~   rv   rb   r   r   s   &    rc   test_yfiles_extension%TestReadGraphML.test_yfiles_extension+  sc   Yt ZZG,-OOB6AGGI<.000zz$$z////wwt}W%,,,wwt}W%,,,wwt}W%,,,wwt}\*k999wwt}\*k999wwt}\*.OOOOwwt}]+/JJJJ

OOBAGGI<.000wt}T"d***wwt}W%,,,wwt}W%,,,wwt}W%,,,wwt}\*k999wwt}\*k999wwt}\*.OOOOwwt}]+/JJJJTD9AGGI<.000zz$$z////wwt}W%,,,wwt}W%,,,wwt}W%,,,T"AGGI<.000wt}T"d***wwt}W%,,,wwt}W%,,,wwt}W%,,,rf   c                X   R p\         P                  ! VP                  R4      4      p\        P                  ! V4      p\        P
                  ! V4      pW43 F  pVP                  R,          R,          '       g   Q hVP                  R,          R,          '       d   Q hVP                  R,          R,          '       d   Q hVP                  R,          R,          '       g   Q hVP                  R,          R,          '       d   Q hVP                  R,          R,          '       d   K  Q h	  R	# )
aU  <?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <key id="d0" for="node" attr.name="test" attr.type="boolean">
    <default>false</default>
  </key>
  <graph id="G" edgedefault="directed">
    <node id="n0">
      <data key="d0">true</data>
    </node>
    <node id="n1"/>
    <node id="n2">
      <data key="d0">false</data>
    </node>
    <node id="n3">
      <data key="d0">FaLsE</data>
    </node>
    <node id="n4">
      <data key="d0">True</data>
    </node>
    <node id="n5">
      <data key="d0">0</data>
    </node>
    <node id="n6">
      <data key="d0">1</data>
    </node>
  </graph>
</graphml>
r   r
   testr   r   r   r   r7   N)rB   rC   rD   r<   rw   r|   ry   )r~   r   rb   r   r   rH   s   &     rc   	test_boolTestReadGraphML.test_bool  s    > ZZ)*OOBQVE;;t$V,,,,{{4(0000{{4(0000;;t$V,,,,{{4(0000;;t$V,,,, rf   c                :   R pRpRpW3 F  p\         P                  ! VP                  R4      4      p\        P                  ! V4      p\        P
                  ! V4      pWg3 F%  pVP                  R,          R,          '       d   K%  Q h	  K  	  \         P                  ! VP                  R4      4      p\        P                  ! \        P                  \        P                  V4       \        P                  ! \        P                  \        P
                  V4       R# )a  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <key id="d0" for="node" attr.name="test" attr.type="boolean">
    <default>false</default>
  </key>
  <graph id="G">
    <node id="n0">
      <data key="d0">true</data>
    </node>
  </graph>
</graphml>
a  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml>
  <key id="d0" for="node" attr.name="test" attr.type="boolean">
    <default>false</default>
  </key>
  <graph id="G">
    <node id="n0">
      <data key="d0">true</data>
    </node>
  </graph>
</graphml>
a%  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml xmlns="https://ghghgh">
  <key id="d0" for="node" attr.name="test" attr.type="boolean">
    <default>false</default>
  </key>
  <graph id="G">
    <node id="n0">
      <data key="d0">true</data>
    </node>
  </graph>
</graphml>
r   r
   r   N)
rB   rC   rD   r<   rw   r|   ry   r   r   r   )	r~   goodbaduglyr   rb   r   r   rH   s	   &        rc   test_graphml_header_line(TestReadGraphML.test_graphml_header_line  s     AAHHW-.B#A  #A{{4(0000  	  ZZG,-b&&<b&&(8(8$?rf   c                ,   R p\         P                  ! VP                  R4      4      p\        P                  ! V4      pVP                  RR7       UUu. uF  w  rEVNK	  	  ppp\        V4      ^	8X  g   Q hV F  pVR,          R8w  d   K  Q h	  R# u uppi )aI  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
  <!--Created by yEd 3.17-->
  <key attr.name="Description" attr.type="string" for="graph" id="d0"/>
  <key for="port" id="d1" yfiles.type="portgraphics"/>
  <key for="port" id="d2" yfiles.type="portgeometry"/>
  <key for="port" id="d3" yfiles.type="portuserdata"/>
  <key attr.name="CustomProperty" attr.type="string" for="node" id="d4">
    <default/>
  </key>
  <key attr.name="url" attr.type="string" for="node" id="d5"/>
  <key attr.name="description" attr.type="string" for="node" id="d6"/>
  <key for="node" id="d7" yfiles.type="nodegraphics"/>
  <key for="graphml" id="d8" yfiles.type="resources"/>
  <key attr.name="url" attr.type="string" for="edge" id="d9"/>
  <key attr.name="description" attr.type="string" for="edge" id="d10"/>
  <key for="edge" id="d11" yfiles.type="edgegraphics"/>
  <graph edgedefault="directed" id="G">
    <data key="d0"/>
    <node id="n0">
      <data key="d4"><![CDATA[CustomPropertyValue]]></data>
      <data key="d6"/>
      <data key="d7">
        <y:ShapeNode>
          <y:Geometry height="30.0" width="30.0" x="125.0" y="-255.4611111111111"/>
          <y:Fill color="#FFCC00" transparent="false"/>
          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="11.634765625" x="9.1826171875" y="6.015625">2<y:LabelModel>
              <y:SmartNodeLabelModel distance="4.0"/>
            </y:LabelModel>
            <y:ModelParameter>
              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
            </y:ModelParameter>
          </y:NodeLabel>
          <y:Shape type="rectangle"/>
        </y:ShapeNode>
      </data>
    </node>
    <node id="n1" yfiles.foldertype="group">
      <data key="d4"><![CDATA[CustomPropertyValue]]></data>
      <data key="d5"/>
      <data key="d6"/>
      <data key="d7">
        <y:ProxyAutoBoundsNode>
          <y:Realizers active="0">
            <y:GroupNode>
              <y:Geometry height="250.38333333333333" width="140.0" x="-30.0" y="-330.3833333333333"/>
              <y:Fill color="#F5F5F5" transparent="false"/>
              <y:BorderStyle color="#000000" type="dashed" width="1.0"/>
              <y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="140.0" x="0.0" y="0.0">Group 3</y:NodeLabel>
              <y:Shape type="roundrectangle"/>
              <y:State closed="false" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
              <y:Insets bottom="15" bottomF="15.0" left="15" leftF="15.0" right="15" rightF="15.0" top="15" topF="15.0"/>
              <y:BorderInsets bottom="1" bottomF="1.0" left="0" leftF="0.0" right="0" rightF="0.0" top="1" topF="1.0001736111111086"/>
            </y:GroupNode>
            <y:GroupNode>
              <y:Geometry height="50.0" width="50.0" x="0.0" y="60.0"/>
              <y:Fill color="#F5F5F5" transparent="false"/>
              <y:BorderStyle color="#000000" type="dashed" width="1.0"/>
              <y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="65.201171875" x="-7.6005859375" y="0.0">Folder 3</y:NodeLabel>
              <y:Shape type="roundrectangle"/>
              <y:State closed="true" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
              <y:Insets bottom="5" bottomF="5.0" left="5" leftF="5.0" right="5" rightF="5.0" top="5" topF="5.0"/>
              <y:BorderInsets bottom="0" bottomF="0.0" left="0" leftF="0.0" right="0" rightF="0.0" top="0" topF="0.0"/>
            </y:GroupNode>
          </y:Realizers>
        </y:ProxyAutoBoundsNode>
      </data>
      <graph edgedefault="directed" id="n1:">
        <node id="n1::n0" yfiles.foldertype="group">
          <data key="d4"><![CDATA[CustomPropertyValue]]></data>
          <data key="d5"/>
          <data key="d6"/>
          <data key="d7">
            <y:ProxyAutoBoundsNode>
              <y:Realizers active="0">
                <y:GroupNode>
                  <y:Geometry height="83.46111111111111" width="110.0" x="-15.0" y="-292.9222222222222"/>
                  <y:Fill color="#F5F5F5" transparent="false"/>
                  <y:BorderStyle color="#000000" type="dashed" width="1.0"/>
                  <y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="110.0" x="0.0" y="0.0">Group 1</y:NodeLabel>
                  <y:Shape type="roundrectangle"/>
                  <y:State closed="false" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
                  <y:Insets bottom="15" bottomF="15.0" left="15" leftF="15.0" right="15" rightF="15.0" top="15" topF="15.0"/>
                  <y:BorderInsets bottom="1" bottomF="1.0" left="0" leftF="0.0" right="0" rightF="0.0" top="1" topF="1.0001736111111086"/>
                </y:GroupNode>
                <y:GroupNode>
                  <y:Geometry height="50.0" width="50.0" x="0.0" y="60.0"/>
                  <y:Fill color="#F5F5F5" transparent="false"/>
                  <y:BorderStyle color="#000000" type="dashed" width="1.0"/>
                  <y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="65.201171875" x="-7.6005859375" y="0.0">Folder 1</y:NodeLabel>
                  <y:Shape type="roundrectangle"/>
                  <y:State closed="true" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
                  <y:Insets bottom="5" bottomF="5.0" left="5" leftF="5.0" right="5" rightF="5.0" top="5" topF="5.0"/>
                  <y:BorderInsets bottom="0" bottomF="0.0" left="0" leftF="0.0" right="0" rightF="0.0" top="0" topF="0.0"/>
                </y:GroupNode>
              </y:Realizers>
            </y:ProxyAutoBoundsNode>
          </data>
          <graph edgedefault="directed" id="n1::n0:">
            <node id="n1::n0::n0">
              <data key="d4"><![CDATA[CustomPropertyValue]]></data>
              <data key="d6"/>
              <data key="d7">
                <y:ShapeNode>
                  <y:Geometry height="30.0" width="30.0" x="50.0" y="-255.4611111111111"/>
                  <y:Fill color="#FFCC00" transparent="false"/>
                  <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
                  <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="11.634765625" x="9.1826171875" y="6.015625">1<y:LabelModel>
                      <y:SmartNodeLabelModel distance="4.0"/>
                    </y:LabelModel>
                    <y:ModelParameter>
                      <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
                    </y:ModelParameter>
                  </y:NodeLabel>
                  <y:Shape type="rectangle"/>
                </y:ShapeNode>
              </data>
            </node>
            <node id="n1::n0::n1">
              <data key="d4"><![CDATA[CustomPropertyValue]]></data>
              <data key="d6"/>
              <data key="d7">
                <y:ShapeNode>
                  <y:Geometry height="30.0" width="30.0" x="0.0" y="-255.4611111111111"/>
                  <y:Fill color="#FFCC00" transparent="false"/>
                  <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
                  <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="11.634765625" x="9.1826171875" y="6.015625">3<y:LabelModel>
                      <y:SmartNodeLabelModel distance="4.0"/>
                    </y:LabelModel>
                    <y:ModelParameter>
                      <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
                    </y:ModelParameter>
                  </y:NodeLabel>
                  <y:Shape type="rectangle"/>
                </y:ShapeNode>
              </data>
            </node>
          </graph>
        </node>
        <node id="n1::n1" yfiles.foldertype="group">
          <data key="d4"><![CDATA[CustomPropertyValue]]></data>
          <data key="d5"/>
          <data key="d6"/>
          <data key="d7">
            <y:ProxyAutoBoundsNode>
              <y:Realizers active="0">
                <y:GroupNode>
                  <y:Geometry height="83.46111111111111" width="110.0" x="-15.0" y="-179.4611111111111"/>
                  <y:Fill color="#F5F5F5" transparent="false"/>
                  <y:BorderStyle color="#000000" type="dashed" width="1.0"/>
                  <y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="110.0" x="0.0" y="0.0">Group 2</y:NodeLabel>
                  <y:Shape type="roundrectangle"/>
                  <y:State closed="false" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
                  <y:Insets bottom="15" bottomF="15.0" left="15" leftF="15.0" right="15" rightF="15.0" top="15" topF="15.0"/>
                  <y:BorderInsets bottom="1" bottomF="1.0" left="0" leftF="0.0" right="0" rightF="0.0" top="1" topF="1.0001736111111086"/>
                </y:GroupNode>
                <y:GroupNode>
                  <y:Geometry height="50.0" width="50.0" x="0.0" y="60.0"/>
                  <y:Fill color="#F5F5F5" transparent="false"/>
                  <y:BorderStyle color="#000000" type="dashed" width="1.0"/>
                  <y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="65.201171875" x="-7.6005859375" y="0.0">Folder 2</y:NodeLabel>
                  <y:Shape type="roundrectangle"/>
                  <y:State closed="true" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
                  <y:Insets bottom="5" bottomF="5.0" left="5" leftF="5.0" right="5" rightF="5.0" top="5" topF="5.0"/>
                  <y:BorderInsets bottom="0" bottomF="0.0" left="0" leftF="0.0" right="0" rightF="0.0" top="0" topF="0.0"/>
                </y:GroupNode>
              </y:Realizers>
            </y:ProxyAutoBoundsNode>
          </data>
          <graph edgedefault="directed" id="n1::n1:">
            <node id="n1::n1::n0">
              <data key="d4"><![CDATA[CustomPropertyValue]]></data>
              <data key="d6"/>
              <data key="d7">
                <y:ShapeNode>
                  <y:Geometry height="30.0" width="30.0" x="0.0" y="-142.0"/>
                  <y:Fill color="#FFCC00" transparent="false"/>
                  <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
                  <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="11.634765625" x="9.1826171875" y="6.015625">5<y:LabelModel>
                      <y:SmartNodeLabelModel distance="4.0"/>
                    </y:LabelModel>
                    <y:ModelParameter>
                      <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
                    </y:ModelParameter>
                  </y:NodeLabel>
                  <y:Shape type="rectangle"/>
                </y:ShapeNode>
              </data>
            </node>
            <node id="n1::n1::n1">
              <data key="d4"><![CDATA[CustomPropertyValue]]></data>
              <data key="d6"/>
              <data key="d7">
                <y:ShapeNode>
                  <y:Geometry height="30.0" width="30.0" x="50.0" y="-142.0"/>
                  <y:Fill color="#FFCC00" transparent="false"/>
                  <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
                  <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="11.634765625" x="9.1826171875" y="6.015625">6<y:LabelModel>
                      <y:SmartNodeLabelModel distance="4.0"/>
                    </y:LabelModel>
                    <y:ModelParameter>
                      <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
                    </y:ModelParameter>
                  </y:NodeLabel>
                  <y:Shape type="rectangle"/>
                </y:ShapeNode>
              </data>
            </node>
          </graph>
        </node>
      </graph>
    </node>
    <node id="n2">
      <data key="d4"><![CDATA[CustomPropertyValue]]></data>
      <data key="d6"/>
      <data key="d7">
        <y:ShapeNode>
          <y:Geometry height="30.0" width="30.0" x="125.0" y="-142.0"/>
          <y:Fill color="#FFCC00" transparent="false"/>
          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="11.634765625" x="9.1826171875" y="6.015625">9<y:LabelModel>
              <y:SmartNodeLabelModel distance="4.0"/>
            </y:LabelModel>
            <y:ModelParameter>
              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
            </y:ModelParameter>
          </y:NodeLabel>
          <y:Shape type="rectangle"/>
        </y:ShapeNode>
      </data>
    </node>
    <edge id="n1::n1::e0" source="n1::n1::n0" target="n1::n1::n1">
      <data key="d10"/>
      <data key="d11">
        <y:PolyLineEdge>
          <y:Path sx="15.0" sy="-0.0" tx="-15.0" ty="-0.0"/>
          <y:LineStyle color="#000000" type="line" width="1.0"/>
          <y:Arrows source="none" target="standard"/>
          <y:BendStyle smoothed="false"/>
        </y:PolyLineEdge>
      </data>
    </edge>
    <edge id="n1::n0::e0" source="n1::n0::n1" target="n1::n0::n0">
      <data key="d10"/>
      <data key="d11">
        <y:PolyLineEdge>
          <y:Path sx="15.0" sy="-0.0" tx="-15.0" ty="-0.0"/>
          <y:LineStyle color="#000000" type="line" width="1.0"/>
          <y:Arrows source="none" target="standard"/>
          <y:BendStyle smoothed="false"/>
        </y:PolyLineEdge>
      </data>
    </edge>
    <edge id="e0" source="n1::n0::n0" target="n0">
      <data key="d10"/>
      <data key="d11">
        <y:PolyLineEdge>
          <y:Path sx="15.0" sy="-0.0" tx="-15.0" ty="-0.0"/>
          <y:LineStyle color="#000000" type="line" width="1.0"/>
          <y:Arrows source="none" target="standard"/>
          <y:BendStyle smoothed="false"/>
        </y:PolyLineEdge>
      </data>
    </edge>
    <edge id="e1" source="n1::n1::n1" target="n2">
      <data key="d10"/>
      <data key="d11">
        <y:PolyLineEdge>
          <y:Path sx="15.0" sy="-0.0" tx="-15.0" ty="-0.0"/>
          <y:LineStyle color="#000000" type="line" width="1.0"/>
          <y:Arrows source="none" target="standard"/>
          <y:BendStyle smoothed="false"/>
        </y:PolyLineEdge>
      </data>
    </edge>
  </graph>
  <data key="d8">
    <y:Resources/>
  </data>
</graphml>
r   Tru   CustomProperty N)rB   rC   rD   r<   rw   ry   len)r~   rv   rb   r   _x	node_datas   &      rc    test_read_attributes_with_groups0TestReadGraphML.test_read_attributes_with_groups	  s    Zx ZZG,-OOBgg4g010da014yA~~I-."444  2s   Bc                d   R p\         P                  ! VP                  R4      4      p\        P                  ! V4      pRRR/3.p\        VP                  RR7      4      V8X  g   Q hVP                  ^ 4       \        P                  ! V4      p\        VP                  RR7      4      V8X  g   Q hR# )a  <?xml version='1.0' encoding='utf-8'?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <key attr.name="cudfversion" attr.type="long" for="node" id="d6" />
  <graph edgedefault="directed">
    <node id="n1">
      <data key="d6">4284</data>
    </node>
  </graph>
</graphml>r   r   cudfversioni  Tru   N)	rB   rC   rD   r<   rw   rx   ry   r{   r|   r   s   &     rc   test_long_attribute_type(TestReadGraphML.test_long_attribute_type-  s     ZZ)*OOBM4012agg4g()X555

Qagg4g()X555rf   rg   N)rh   ri   rj   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rm   rn   ro   s   @rc   rr   rr   9  sn     I	2	2	2	2"B
=$=$=8=<6.+Z~-@)-V1@fb5H	6 6rf   rr   c                      a  ] tR tRt o ]! ]P                  4      t]R 4       t	R t
R tR tR tR tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )TestWriteGraphMLiE  c                Z    \         P                  4        \        P                  ! R 4      pR# )
lxml.etreeN)r   rd   r   importorskip)ra   r   s   & rc   rd   TestWriteGraphML.setup_classH  s    !-rf   c                     ^ RI p\        P                  \        P                  8X  g   Q hR#   \         d*    \        P                  \        P
                  8X  g   Q h R# i ; ir   )
lxml.etreer<   r   write_graphml_lxmlImportErrorwrite_graphml_xml)r~   lxmls   & rc   test_write_interface%TestWriteGraphML.test_write_interfaceM  sM    	<##r'<'<<<< 	<##r';';;;;	<s   )- 0A! A!c                ^   V P                   pR VP                  R&   \        P                  ! 4       pV P	                  W4       VP                  ^ 4       \        P                  ! V4      p\        VP                  4       4      \        VP                  4       4      8X  g   Q h\        VP                  4       4      \        VP                  4       4      8X  g   Q h\        VP                  RR7      4      \        VP                  RR7      4      8X  g   Q hV P                  P                  ^ 4       R# )therehiTru   Nr>   rH   rB   rC   writerr{   r<   rw   rx   ry   rz   rE   r~   r   rb   r   s   &   rc   'test_write_read_simple_directed_graphml8TestWriteGraphML.test_write_read_simple_directed_graphmlU  s    &&ZZ\A

OOBaggi F1779$5555aggi F1779$5555agg4g()VAGGG4F-GGGG$$Q'rf   c                v    \        4       pV P                  pVP                  4       pVP                  W#.4       R # N)r   r>   copy
add_graphs)r~   gmlwr   r   s   &   rc   test_GraphMLWriter_add_graphs.TestWriteGraphML.test_GraphMLWriter_add_graphsa  s-    &&FFHrf   c                   V P                   pR VP                  R&   RVP                  R&   \        P                  ! 4       pV P	                  WRR7       VP                  ^ 4       \        P                  ! V4      p\        VP                  4       4      \        VP                  4       4      8X  g   Q h\        VP                  4       4      \        VP                  4       4      8X  g   Q h\        VP                  RR7      4      \        VP                  RR7      4      8X  g   Q hV P                  P                  ^ 4       R# )	r	  r
  r0   r   F)prettyprintTru   Nr  r  s   &   rc   %test_write_read_simple_no_prettyprint6TestWriteGraphML.test_write_read_simple_no_prettyprintg  s    &&ZZ\Au-

OOBaggi F1779$5555aggi F1779$5555agg4g()VAGGG4F-GGGG$$Q'rf   c                   ^ RI Hp V P                  p\        P                  ! 4       pV P                  W#RR7       VP                  ^ 4       \        P                  ! V4      pVP                  ^ 4       \        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       RR7      '       g   Q h\        VP                  RR7      VP                  RR7      RR7      '       g   Q hV P                  P                  ^ 4       V! V4      p\        VP                  4       4      p\!        V4      ^8X  g   Q hVR,           Uu. uF  qwP#                  4       NK  	  pp\!        V4      ^8X  g   Q hRV^ ,          9   g   Q hRV^ ,          9   g   Q hRV^,          9   g   Q hRV^,          9   g   Q hRV^,          9   g   Q hRV^,          9   g   Q h\        P                  ! 4       p	\        P$                  ! W)4       V	P                  ^ 4       \        P                  ! V	4      p\        P                  ! 4       p
\        P$                  ! W*RR7       V
P                  ^ 4       \        P                  ! V
4      p\&        ;QJ d:    R \)        VP                  VP                  4       4       F  '       d   K   RM/	  RM+! R \)        VP                  VP                  4       4       4      '       g   Q h\&        ;QJ d:    R	 \)        VP                  VP                  4       4       F  '       d   K   RM/	  RM+! R	 \)        VP                  VP                  4       4       4      '       g   Q hR
# u upi )r   parseT)named_key_idsdirectedru   :N   Nc              3   .   "   T F  w  rW8H  x  K  	  R # 5ir  rg   ).0r   r   s   &  rc   	<genexpr>STestWriteGraphML.test_write_read_attribute_named_key_ids_graphml.<locals>.<genexpr>       B,A28,A   Fc              3   .   "   T F  w  rW8H  x  K  	  R # 5ir  rg   )r#  r   r   s   &  rc   r$  r%    r&  r'  N)r   r3   )	attr.namer3   )r   r/   )r)  r/   )r   r.   )r)  r.   )xml.etree.ElementTreer  rN   rB   rC   r  r{   r<   rw   r   ry   r   rz   rO   r   getrootr   r   r   allr   )r~   r  r   rb   r   xmlchildrenchildr   default_behavior_fhnamed_key_ids_behavior_fhJs   &           rc   /test_write_read_attribute_named_key_ids_graphml@TestWriteGraphML.test_write_read_attribute_named_key_ids_graphmlt  s   /..ZZ\A.

OOB

1779aggi00001779aggi$????1777-qwwDw/ADQQQQ'',,Q/Bi&8}!!!+3B<8<%<84yA~~"d1g---)T!W444$q')))%a000$q')))%a000 !jjl
0  #OO/0$&JJL!
TJ!&&q)OO56sBC,ABsssBC,ABBBBBsBC,ABsssBC,ABBBBB/ 9s   $Nc                n   ^ RI Hp V P                  p\        P                  ! 4       pV P                  W#RR7       VP                  ^ 4       \        P                  ! V4      pVP                  ^ 4       \        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       RR7      '       g   Q h\        VP                  RR7      VP                  RR7      RR7      '       g   Q hV P                  P                  ^ 4       V! V4      p\        VP                  4       4      p\!        V4      ^8X  g   Q hVR,           Uu. uF  qwP#                  4       NK  	  pp\!        V4      ^8X  g   Q hRV^ ,          9   g   Q hRV^,          9   g   Q hR# u upi )	r   r  Tinfer_numeric_typesr  ru   :Nr   NN)z	attr.typedouble)r*  r  rQ   rB   rC   r  r{   r<   rw   r   ry   r   rz   rR   r   r+  r   r   )	r~   r  r   rb   r   r-  r.  r/  r   s	   &        rc   .test_write_read_attribute_numeric_type_graphml?TestWriteGraphML.test_write_read_attribute_numeric_type_graphml  sN   /--ZZ\At4

OOB

1779aggi00001779aggi$????1777-qwwDw/ADQQQQ&&++A.Bi&8}!!!+3B<8<%<84yA~~&$q'111&$q'111	 9s   $F2c                   \         P                  ! 4       pVP                  RR.4       VR,          pV P                  W#4       \         P                  ! V4      pVP                  4       '       g   Q h\        VP                  RR7      VP                  RR7      4      '       g   Q hVP                  VP                  8X  g   Q hR# )zWriting keys as edge id attributes means keys become strings.
The original keys are stored as data, so read them back in
if `str(key) == edge_id`
This allows the adjacency to remain the same.
test.graphmlTr   Nr   r   r   )r   r   r!  )	r<   rX   rA   r  rw   is_multigraphr   rz   r   r~   tmp_pathr   fnamer   s   &&   rc   test_more_multigraph_keys*TestWriteGraphML.test_more_multigraph_keys  s     MMO	-78>)AOOE"    1777-qwwDw/ABBBBvvrf   c                   \         P                  ! R R7      pVP                  ^^RR7       \         P                  ! V. RO4       VP	                  ^^^R7       RR/VP
                  R&   R^/VP
                  R	&   \        P                  ! 4       pV P                  W4       VP                  ^ 4       \         P                  ! V\        R
7      p\        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       4      '       g   Q hVP
                  VP
                  8X  g   Q hR# )Fred)namer   )r   r   r4   r   r   r   r   edge_defaultr   N)r   r   r   r!  )r<   rT   r?   add_pathr@   rH   rB   rC   r  r{   rw   r   r   ry   r   rz   r  s   &   rc   test_default_attribute'TestWriteGraphML.test_default_attribute  s    HH&!	

1AW
-
A|$	

1a
"#*H"5#+Q-ZZ\A

OOB#.1779aggi00001779aggi0000ww!''!!!rf   c                r   \         P                  ! 4       pVP                  R RR7       VP                  R^ R7       VP                  R RRR7       VP                  R R^ R7       \        P
                  ! 4       pV P                  W4       VP                  ^ 4       \         P                  ! V4      pVP                  R ,          R,          '       d   Q hVP                  R,          R,          ^ 8X  g   Q hVP                  R,          R,          '       d   Q hVP                  R,          R,          ^ 8X  g   Q hR# )r
   Fspecialr   rM  Nr
   r   r   r
   r   r   r<   rX   r?   r@   rB   rC   r  r{   rw   ry   rz   r  s   &   rc   test_mixed_type_attributes+TestWriteGraphML.test_mixed_type_attributes  s    MMO	

4
'	

4
#	

4u
-	

4q
)ZZ\A

OOB774=++++wwt}Y'1,,,77=))4444ww}%i0A555rf   c                n   \         P                  ! 4       pVP                  R RR7       VP                  R^ R7       VP                  R RRR7       VP                  R R^ R7       \        P
                  ! 4       pV P                  W4       VP                  ^ 4       \         P                  ! V4      pVP                  R ,          R,          R8X  g   Q hVP                  R,          R,          ^ 8X  g   Q hVP                  R,          R,          R8X  g   Q hVP                  R,          R,          ^ 8X  g   Q hR# )r
   hellorL  r   rM  NrN  rO  rP  r  s   &   rc   %test_str_number_mixed_type_attributes6TestWriteGraphML.test_str_number_mixed_type_attributes  s    MMO	

4
)	

4
#	

4w
/	

4q
)ZZ\A

OOBwwt}Y'7222wwt}Y'1,,,ww}%i0G;;;ww}%i0A555rf   c                   \         P                  ! R 4      p\        P                  ! 4       pVP	                  RVP                  ^ 4      R7       VP	                  R^R7       VP                  RRVP                  ^4      R7       VP                  RR^R7       \        P                  ! 4       pV P                  W#4       VP                  ^ 4       \        P                  ! V4      pVP                  R,          R,          ^ 8X  g   Q hVP                  R,          R,          ^8X  g   Q hVP                  R,          R,          ^8X  g   Q hVP                  R,          R,          ^8X  g   Q hR# )numpyr
   rL  r   rM  NrN  rO  )r   r   r<   rX   r?   int64r@   rB   rC   r  r{   rw   ry   rz   )r~   npr   rb   r   s   &    rc   %test_mixed_int_type_number_attributes6TestWriteGraphML.test_mixed_int_type_number_attributes  s     )MMO	

4!
-	

4
#	

4rxx{
3	

4q
)ZZ\A

OOBwwt}Y'1,,,wwt}Y'1,,,ww}%i0A555ww}%i0A555rf   c                \   \         P                  ! 4       pVP                  RR.4       VR,          pV P                  W#4       \         P                  ! V4      pVP                  4       '       d   Q h\         P                  ! VRR7      pVP                  4       '       g   Q hVP                  R RR4       VR,          pV P                  W#4       \         P                  ! V4      pVP                  4       '       g   Q h\         P                  ! VRR7      pVP                  4       '       g   Q hR# )	r   r   r<  Tr   ze-idNr=  )r   cr!  )r<   rX   rA   r  rw   r>  r@   r?  s   &&   rc   test_multigraph_to_graph)TestWriteGraphML.test_multigraph_to_graph  s    MMO	-78>)AOOE"??$$$$OOED9     	


3V$>)AOOE"    OOED9    rf   c                   ^ RI Hp \        P                  ! 4       pVP	                  . RO4       VP
                   Uu/ uF  qD\        V4      bK  	  pp\        P                  ! W5R4       VR,          pV P                  W6RR7       \        P                  ! VRR7      p\        P                  ! V4      p\        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       4      '       g   Q h\        P                  ! W5R4       \        VP                  RR7      VP                  RR7      4      '       g   Q hV! V4      p	\        V	P                  4       4      p
\!        V
4      ^8X  g   Q hV	P                  4       P#                  R4       Uu. uF  pVP$                  R,          NK  	  pp\'        V4      \'        VP)                  4       4      8X  g   Q hR	P+                  V4      p\        P,                  ! V4      p\'        VP                  4       4      \'        VP                  4       4      8X  g   Q h\'        VP                  4       4      \'        VP                  4       4      8X  g   Q h\        P                  ! W5R4       \        VP                  RR7      VP                  RR7      4      '       g   Q hR
# u upi u upi )r   r  eidr<  edge_id_from_attributer   Tru   ..//{http://graphml.graphdrawing.org/xmlns}edger   N)r   r   r   r^  r   r^  )r*  r  r<   rT   rA   rz   r   set_edge_attributesr  generate_graphmlrw   r   ry   r   r   r+  r   findallattribrx   valuesjoinr|   )r~   r@  r  r   eedge_attributesrA  	generatorr   treer.  edgeedge_idsrv   r2  s   &&             rc   *test_write_generate_edge_id_from_attribute;TestWriteGraphML.test_write_generate_edge_id_from_attribute  s>   /HHJ	=>./gg6gc!f9g6
q59>)AU;''%H	OOE"1779aggi00001779aggi0000
q481777-qwwDw/ABBBBU|'8}!!! ..@
 KK 	 
 h6/*@*@*B#CCCC wwy!T"aggi F1779$5555aggi F1779$5555
q481777-qwwDw/ABBBBE 7$
s   K3K!c                D   ^ RI Hp \        P                  ! 4       pVP	                  . RO4       VP
                   Uu/ uF  qD\        V4      bK  	  pp\        P                  ! W5R4       VR,          pV P                  W6RR7       \        P                  ! VRR7      p\        P                  ! V4      pVP                  4       '       g   Q h\        P                  ! VRR7      pVP                  4       '       g   Q h\        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       4      '       g   Q h\        R VP                  RR7       4       4      \        VP!                  4       4      8X  g   Q h\        R	 VP                  RR
7       4       4      \        VP!                  4       4      8X  g   Q hV! V4      p	\#        V	P%                  4       4      p
\'        V
4      ^8X  g   Q hV	P%                  4       P)                  R4       Uu. uF  pVP*                  R,          NK  	  pp\        V4      \        VP!                  4       4      8X  g   Q hRP-                  V4      p\        P.                  ! V4      pVP                  4       '       g   Q h\        VP                  4       VP                  4       4      '       g   Q h\        VP                  4       VP                  4       4      '       g   Q h\        R VP                  RR7       4       4      \        VP!                  4       4      8X  g   Q h\        R VP                  RR
7       4       4      \        VP!                  4       4      8X  g   Q hR# u upi u upi )r   r  rb  r<  rc  Tr   c              3   H   "   T F  w  rq3P                  R 4      x  K  	  R# 5irb  Ngetr#  uvrv   s   &   rc   r$  YTestWriteGraphML.test_multigraph_write_generate_edge_id_from_attribute.<locals>.<genexpr>X       K8J*!hhuoo8J    "ru   c              3   *   "   T F	  w  rq3x  K  	  R # 5ir  rg   r#  r}  r~  r   s   &   rc   r$  r  \       >+=iaCc+=   r   re  r   r   c              3   H   "   T F  w  rq3P                  R 4      x  K  	  R# 5iry  rz  r|  s   &   rc   r$  r  s  r  r  c              3   *   "   T F	  w  rq3x  K  	  R # 5ir  rg   r  s   &   rc   r$  r  w  r  r  N)rf  rg  rh  rf  )r*  r  r<   rX   rA   rz   r   ri  r  rj  rw   r>  r   ry   r   rx   rm  r   r+  r   rk  rl  rn  r|   )r~   r@  r  r   ro  rp  rA  rq  r   rr  r.  rs  rt  graphml_datar2  s   &&             rc   5test_multigraph_write_generate_edge_id_from_attributeFTestWriteGraphML.test_multigraph_write_generate_edge_id_from_attributeD  s   /MMO	IJ./gg6gc!f9g6
q59>)AU;''%H	OOE"    OOED9    1779aggi00001779aggi0000KT8JKKv""$P
 
 	
 
 >1777+=>>&""$C
 
 	
 
 U|'8}!!! ..@
 KK 	 
 h6/*@*@*B#CCCC wwy)\*    1779aggi00001779aggi0000KT8JKKv""$P
 
 	
 
 >1777+=>>&""$C
 
 	
 
] 74
s   N0Nc                ,   \         P                  ! R 4      pVP                  R4      p\        P                  ! ^^RV/3.4      pVR,          pV P                  WE4       \        P                  ! V\        R7      pVP                  VP                  8X  g   Q hV^,          ^,          R,          pV^,          ^,          R,          pV\         P                  ! VRR7      8X  g   Q h\        V4      VP                  J g   Q h\        V4      \        J g   Q hR# rX  g333333@r   r<  r   gư>)absN)r   r   float64r<   rT   r  rw   r   rz   approxtypefloat	r~   r@  rZ  wtr   rA  r   wtGwtHs	   &&       rc   test_numpy_float64#TestWriteGraphML.test_numpy_float64{        )ZZ_HHq!h^,-.>)AOOES1ww!''!!!d1ghd1ghfmmCT2222CyBJJ&&&CyE!!!rf   c                ,   \         P                  ! R 4      pVP                  R4      p\        P                  ! ^^RV/3.4      pVR,          pV P                  WE4       \        P                  ! V\        R7      pVP                  VP                  8X  g   Q hV^,          ^,          R,          pV^,          ^,          R,          pV\         P                  ! VRR7      8X  g   Q h\        V4      VP                  J g   Q h\        V4      \        J g   Q hR# r  )r   r   float32r<   rT   r  rw   r   rz   r  r  r  r  s	   &&       rc   test_numpy_float32#TestWriteGraphML.test_numpy_float32  r  rf   c                2   \         P                  ! R 4      pV P                  pVP                  R4      VP                  R,          R&   VR,          pV P                  W4RR7       \        P                  ! V4      pVP                  VP                  8X  g   Q hR# )rX  r#   r   r<  Tr6  N)r   r   )	r   r   rQ   r  rz   r  r<   rw   r   )r~   r@  rZ  r   rA  r   s   &&    rc   test_numpy_float64_inference-TestWriteGraphML.test_numpy_float64_inference  sv      )--*,**S/h'>)A$7OOE"vvrf   c                   \         P                  ! 4       p\        R 4      \        ^{4      ,           \        R4      ,           p\        R4      \        R4      ,           \        R4      ,           p\        pVP	                  VRVR7       VR,          pV P                  W&4       \         P                  ! WeR7      pVP                  VP                  8X  g   Q hR	# )
i(	  i  i  i  iD  	Radiohead)r   r<  r   N)r<   rT   chrr   r@   r  rw   r   )r~   r@  r   name1name2r   rA  r   s   &&      rc   test_unicode_attributes(TestWriteGraphML.test_unicode_attributes  s    HHJD	CH$s4y0D	CI%C0		

5+5
1>)AOOE7vvrf   c                n   ^ RI pRR/pVP                  V4      p\        P                  ! 4       pW4P                  R&   \
        P                  ! 4       pV P                  WE4       VP                  ^ 4       \        P                  ! V4      pVP                  R,          VP                  R,          8X  g   Q hR# )r   Nr   z{"a": "123"}r   )
jsondumpsr<   rT   rH   rB   rC   r  r{   rw   )r~   r  r   sar   rb   r   s   &      rc   test_unicode_escape$TestWriteGraphML.test_unicode_escape  s    .!ZZ]HHJZZ\A

OOBwwv!''&/111rf   rg   N)rh   ri   rj   rk   staticmethodr<   r  r  rl   rd   r  r  r  r  r3  r9  rB  rI  rQ  rU  r[  r_  ru  r  r  r  r  r  r  rm   rn   ro   s   @rc   r   r   E  s     "//0F. .<
( (+CZ24 "666 !('CR5
n"" 	 2 2rf   r   c                   T   a  ] tR tRt o ]! ]P                  4      t]R 4       t	Rt
V tR# )TestXMLGraphMLi  c                .    \         P                  4        R # r  )r   rd   )ra   s   &rc   rd   TestXMLGraphML.setup_class  s    $$&rf   rg   N)rh   ri   rj   rk   r  r<   r  r  rl   rd   rm   rn   ro   s   @rc   r  r    s'     "../F' 'rf   r  c                 ^   \         P                  ! R4       \        P                  ! 4       p V P	                  ^ . ROR7       \
        P                  ! 4       p\         P                  ! \        RR7      ;_uu_ 4        \        P                  ! W4       RRR4       R#   + '       g   i     R# ; imTest that a detailed exception is raised when an attribute is of a type
not supported by GraphML, e.g. a listr   )my_list_attributeGraphML does not supportmatchNr   r   r   )
r   r   r<   rT   r?   rB   rC   r   	TypeErrorr   r   rb   s     rc   1test_exception_for_unsupported_datatype_node_attrr    sh     %

AJJqIJ.	B	y(B	C	C
 
D	C	C	Cs   :BB,	c                 `   \         P                  ! R4       \        P                  ! 4       p V P	                  ^ ^. ROR7       \
        P                  ! 4       p\         P                  ! \        RR7      ;_uu_ 4        \        P                  ! W4       RRR4       R#   + '       g   i     R# ; ir  )
r   r   r<   rT   r@   rB   rC   r   r  r   r  s     rc   1test_exception_for_unsupported_datatype_edge_attrr    sj     %

AJJq!yJ1	B	y(B	C	C
 
D	C	C	Cs   ;BB-	c                 V   \         P                  ! R4       \        P                  ! 4       p . ROV P                  R&   \
        P                  ! 4       p\         P                  ! \        RR7      ;_uu_ 4        \        P                  ! W4       RRR4       R#   + '       g   i     R# ; i)r  r   r  r  r  Nr  )
r   r   r<   rT   rH   rB   rC   r   r  r   r  s     rc   2test_exception_for_unsupported_datatype_graph_attrr    sg     %

A#,AGG 	B	y(B	C	C
 
D	C	C	Cs   6BB(	c                     Rp \         P                  ! V P                  R4      4      p\        P                  ! V4      pVP
                  R,          RRRR/8X  g   Q hVP
                  R,          RR	RR
/8X  g   Q hR# )zLTests that a GraphML string with an empty attribute can be parsed
correctly.a  <?xml version='1.0' encoding='utf-8'?>
    <graphml>
      <key id="d1" for="node" attr.name="foo" attr.type="string"/>
      <key id="d2" for="node" attr.name="bar" attr.type="string"/>
      <graph>
        <node id="0">
          <data key="d1">aaa</data>
          <data key="d2">bbb</data>
        </node>
        <node id="1">
          <data key="d1">ccc</data>
          <data key="d2"></data>
        </node>
      </graph>
    </graphml>r   r+   r   aaabarbbbr0   cccr   N)rB   rC   rD   r<   rw   ry   )r   rb   r   s      rc   test_empty_attributer    sn    	A 
AHHW%	&B
A773<E5%7777773<E5%4444rf   )rB   r   networkxr<   networkx.readwrite.graphmlr   networkx.utilsr   r   r   rr   r   r  r  r  r  r  rg   rf   rc   <module>r     s`    	   4 3l7 l7^	I6k I6Xr2{ r2j'% '	 	 	 5rf   