Ë
    D^(hõ ã                   ó¦   — d dl Z d dlZd dlZd dlmZ d dlmZmZ  G d„ d«      Z	 G d„ de	«      Z
 G d„ d	e	«      Z G d
„ de«      Zd„ Zd„ Zd„ Zd„ Zy)é    N)ÚGraphMLWriter)Úedges_equalÚnodes_equalc                   ó   — e Zd Zed„ «       Zy)ÚBaseGraphMLc                 óÌ  — d| _         t        j                  «       | _        | j                  j	                  d«       | j                  j                  ddd¬«       | j                  j                  dd«       | j                  j                  g d¢«       t        j                  | j                   j                  d«      «      | _
        d	| _        t        j                  d
¬«      | _        ddi| j                  j                  d<   | j                  j	                  dd¬«       | j                  j	                  dd¬«       | j                  j	                  dd¬«       | j                  j	                  d«       | j                  j	                  dd¬«       | j                  j                  dddd¬«       | j                  j                  dddd¬«       | j                  j                  dddd¬«       | j                  j                  ddd¬«       | j                  j                  ddd¬«       | j                  j                  ddd¬«       | j                  j                  ddd d!¬«       t        j                  | j                  j                  d«      «      | _        d"| _        t        j                  d
¬«      | _        d#d$d$d%d%d&d'œ| j                   j                  d<   | j                   j	                  d«       | j                   j	                  d«       | j                   j                  ddd¬«       t        j                  | j                  j                  d«      «      | _        d(| _        t        j                  «       | _        | j&                  j	                  d)d*d+¬,«       | j&                  j	                  d-d.d+¬,«       | j&                  j                  d)d-d/¬0«       t        j                  | j$                  j                  d«      «      }|| _        d1| _        t        j                  «       | _        | j,                  j	                  dd2¬3«       | j,                  j	                  dd¬3«       | j,                  j                  ddd2¬3«       | j,                  j                  ddd¬3«       t        j                  | j*                  j                  d«      «      }|| _        d4| _        t        j2                  «       | _        | j4                  j	                  d«       | j4                  j                  ddd¬«       | j4                  j                  d5d6g«       t        j                  | j0                  j                  d«      «      }|| _        d7| _        t        j:                  «       | _        | j<                  j	                  d«       | j<                  j                  ddd¬«       | j<                  j                  ddd¬«       | j<                  j                  ddd¬«       t        j                  | j8                  j                  d«      «      }|| _        d8| _         t        j:                  «       | _!        | jB                  j	                  d«       | jB                  j                  ddd¬«       | jB                  j                  ddd¬«       | jB                  j                  ddd¬«       t        j                  | j@                  j                  d«      «      }|| _"        d9| _#        t        j:                  «       | _$        | jH                  j	                  d«       | jH                  j                  dd«       | jH                  j                  ddd¬«       | jH                  j                  ddd¬«       t        j                  | jF                  j                  d«      «      }|| _%        y ):Na  <?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)
©Ún1r   ©r   Ún3)r   Ún5)r   Ún4)r   Ún6)r   r   )r   Ún7)r   Ún8)r   r   )r   Ún9ú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   Úbluer   Úredr   r   Ú	turquoiseÚe0g      ð?)r   Úweightr   Ú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>
        Fr   g        ÚFoo)Úboolean_attributeÚint_attributeÚlong_attributeÚfloat_attributeÚdouble_attributeÚstring_attributeaV  <?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>r   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="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>)&Ú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/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/readwrite/tests/test_graphml.pyÚsetup_classzBaseGraphML.setup_class   s™  € ð$ˆÔ ô> %'§J¡J£LˆÔ!Ø×!Ñ!×*Ñ*¨5Ô1Ø×!Ñ!×*Ñ*¨4°¸%Ð*Ô@Ø×!Ñ!×*Ñ*¨4°Ô6Ø×!Ñ!×0Ñ0òô	
ô "$§¡¨C×,DÑ,D×,KÑ,KÈGÓ,TÓ!UˆÔð)ˆÔôT !Ÿj™j¨CÔ0ˆÔØ5<¸hÐ4Gˆ×Ñ×!Ñ! .Ñ1Ø×Ñ×$Ñ$ T°Ð$Ô9Ø×Ñ×$Ñ$ T°Ð$Ô8Ø×Ñ×$Ñ$ T°Ð$Ô7Ø×Ñ×$Ñ$ TÔ*Ø×Ñ×$Ñ$ T°Ð$Ô=Ø×Ñ×$Ñ$ T¨4°DÀÐ$ÔEØ×Ñ×$Ñ$ T¨4°DÀÐ$ÔEØ×Ñ×$Ñ$ T¨4°DÀÐ$ÔEØ×Ñ×$Ñ$ T¨4°DÐ$Ô9Ø×Ñ×$Ñ$ T¨4°DÐ$Ô9Ø×Ñ×$Ñ$ T¨4°DÐ$Ô9Ø×Ñ×$Ñ$ T¨4°DÀÐ$ÔEÜŸ:™: c×&8Ñ&8×&?Ñ&?ÀÓ&HÓIˆÔð+ˆÔ'ô$ ,.¯:©:¸Ô+=ˆÔ(à!&ØØØ"Ø #Ø %ñB
ˆ×(Ñ(×.Ñ.¨~Ñ>ð 	×(Ñ(×1Ñ1°$Ô7Ø×(Ñ(×1Ñ1°$Ô7Ø×(Ñ(×1Ñ1°$¸ÀÐ1ÔFÜ(*¯
©
Ø×+Ñ+×2Ñ2°7Ó;ó)
ˆÔ%ð,ˆÔ(ô. -/¯J©J«LˆÔ)Ø×)Ñ)×2Ñ2°3¸fÈFÐ2ÔSØ×)Ñ)×2Ñ2°3¸iÈvÐ2ÔVØ×)Ñ)×2Ñ2°3¸À|Ð2ÔTÜ�Z‰Z˜×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Ü�Z‰Z˜×7Ñ7×>Ñ>¸wÓGÓHˆØ(*ˆÔ%ð&ˆÔ"ô  ')§h¡h£jˆÔ#Ø×#Ñ#×,Ñ,¨UÔ3Ø×#Ñ#×,Ñ,¨T°4¸EÐ,ÔBØ×#Ñ#×2Ñ2°LÀ,Ð3OÔPÜ�Z‰Z˜×2Ñ2×9Ñ9¸'ÓBÓCˆØ#%ˆÔ ð*ˆÔ&ô %'§M¡M£OˆÔ!Ø×!Ñ!×*Ñ*¨5Ô1Ø×!Ñ!×*Ñ*¨4°¸$Ð*Ô?Ø×!Ñ!×*Ñ*¨4°¸$Ð*Ô?Ø×!Ñ!×*Ñ*¨4°¸$Ð*Ô?Ü�Z‰Z˜×6Ñ6×=Ñ=¸gÓFÓGˆØ')ˆÔ$ð7ˆÔ3ô 24·±³ˆÔ.Ø×.Ñ.×7Ñ7¸Ô>Ø×.Ñ.×7Ñ7¸¸dÀtÐ7ÔLØ×.Ñ.×7Ñ7¸¸dÀtÐ7ÔLØ×.Ñ.×7Ñ7¸¸dÀtÐ7ÔLÜ�Z‰Z˜×CÑC×JÑJÈ7ÓSÓTˆØ46ˆÔ1ð7ˆÔ3ô 24·±³ˆÔ.Ø×.Ñ.×7Ñ7¸Ô>Ø×.Ñ.×7Ñ7¸¸dÔCØ×.Ñ.×7Ñ7¸¸dÀtÐ7ÔLØ×.Ñ.×7Ñ7¸¸dÀtÐ7ÔLÜ�Z‰Z˜×CÑC×JÑJÈ7ÓSÓTˆØ46ˆÕ1ó    N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodre   © rf   rd   r   r   
   s   „ Øñj7ó ñj7rf   r   c                   óx   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestReadGraphMLc                 óZ  — | j                   }t        j                  | j                  «      }t	        |j                  «       «      t	        |j                  «       «      k(  sJ ‚t	        |j                  «       «      t	        |j                  «       «      k(  sJ ‚t	        |j                  d¬«      «      t	        |j                  d¬«      «      k(  sJ ‚| j                  j                  d«       t        j                  | j                  «      }t	        |j                  «       «      t	        |j                  «       «      k(  sJ ‚t	        |j                  «       «      t	        |j                  «       «      k(  sJ ‚t	        |j                  d¬«      «      t	        |j                  d¬«      «      k(  sJ ‚y ©NT©Údatar   )
r?   r=   Úread_graphmlrF   ÚsortedÚnodesÚedgesÚseekÚparse_graphmlr<   ©Úselfr   ÚHÚPGs       rd   Ú!test_read_simple_directed_graphmlz1TestReadGraphML.test_read_simple_directed_graphml:  s7  € Ø×&Ñ&ˆÜ�O‰O˜D×3Ñ3Ó4ˆÜ�a—g‘g“iÓ ¤F¨1¯7©7«9Ó$5Ò5Ð5Ð5Ü�a—g‘g“iÓ ¤F¨1¯7©7«9Ó$5Ò5Ð5Ð5Ü�a—g‘g 4�gÓ(Ó)¬V°A·G±GÀ°GÓ4FÓ-GÒGÐGÐGØ×Ñ×$Ñ$ QÔ'ä×Ñ˜d×7Ñ7Ó8ˆÜ�a—g‘g“iÓ ¤F¨2¯8©8«:Ó$6Ò6Ð6Ð6Ü�a—g‘g“iÓ ¤F¨2¯8©8«:Ó$6Ò6Ð6Ð6Ü�a—g‘g 4�gÓ(Ó)¬V°B·H±HÀ$°HÓ4GÓ-HÒHÐHÑHrf   c                 ó  — | j                   }t        j                  | j                  «      }t	        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚| j                  j                  d«       t        j                  | j                  «      }t	        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚y ©Nr   )rV   r=   rr   rW   r   rt   r   ru   rv   rw   rT   rx   s       rd   Ú#test_read_simple_undirected_graphmlz3TestReadGraphML.test_read_simple_undirected_graphmlG  s»   € Ø×(Ñ(ˆÜ�O‰O˜D×5Ñ5Ó6ˆÜ˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ü˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ø×!Ñ!×&Ñ& qÔ)ä×Ñ˜d×9Ñ9Ó:ˆÜ˜1Ÿ7™7›9 b§h¡h£jÔ1Ð1Ð1Ü˜1Ÿ7™7›9 b§h¡h£jÔ1Ð1Ñ1rf   c                 ó  — | j                   }t        j                  | j                  «      }t	        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚| j                  j                  d«       t        j                  | j                  «      }t	        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚y r~   )rZ   r=   rr   r[   r   rt   r   ru   rv   rw   rX   rx   s       rd   Ú'test_read_undirected_multigraph_graphmlz7TestReadGraphML.test_read_undirected_multigraph_graphmlR  s»   € Ø×&Ñ&ˆÜ�O‰O˜D×9Ñ9Ó:ˆÜ˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ü˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ø×%Ñ%×*Ñ*¨1Ô-ä×Ñ˜d×=Ñ=Ó>ˆÜ˜1Ÿ7™7›9 b§h¡h£jÔ1Ð1Ð1Ü˜1Ÿ7™7›9 b§h¡h£jÔ1Ð1Ñ1rf   c                 ó  — | j                   }t        j                  | j                  «      }t	        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚| j                  j                  d«       t        j                  | j                  «      }t	        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚y r~   )r]   r=   rr   r^   r   rt   r   ru   rv   rw   r\   rx   s       rd   Ú4test_read_undirected_multigraph_no_multiedge_graphmlzDTestReadGraphML.test_read_undirected_multigraph_no_multiedge_graphml]  ó»   € Ø×3Ñ3ˆÜ�O‰O˜D×FÑFÓGˆÜ˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ü˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ø×2Ñ2×7Ñ7¸Ô:ä×Ñ˜d×JÑJÓKˆÜ˜1Ÿ7™7›9 b§h¡h£jÔ1Ð1Ð1Ü˜1Ÿ7™7›9 b§h¡h£jÔ1Ð1Ñ1rf   c                 ó  — | j                   }t        j                  | j                  «      }t	        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚| j                  j                  d«       t        j                  | j                  «      }t	        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚y r~   )r`   r=   rr   ra   r   rt   r   ru   rv   rw   r_   rx   s       rd   Ú?test_read_undirected_multigraph_only_ids_for_multiedges_graphmlzOTestReadGraphML.test_read_undirected_multigraph_only_ids_for_multiedges_graphmlh  r„   rf   c                 óî  — | j                   }t        j                  | j                  «      }t	        |j                  d«      t        |j                  d¬«      «      «      sJ ‚t        |j                  d¬«      «      }t        |j                  d¬«      «      }t        ||«      D ]  \  }}||k(  rŒJ ‚ | j                  j                  d«       t        j                  | j                  «      }t        |j                  d«      «      t        |j                  d¬«      «      k(  sJ ‚t        |j                  d¬«      «      }t        |j                  d¬«      «      }t        ||«      D ]  \  }}||k(  rŒJ ‚ y ro   )rH   r=   rr   rJ   r   rt   rs   ru   Úziprv   rw   rG   )ry   r   rz   ÚgeÚheÚaÚbr{   s           rd   Útest_read_attribute_graphmlz+TestReadGraphML.test_read_attribute_graphmls  s:  € Ø× Ñ ˆÜ�O‰O˜D×-Ñ-Ó.ˆÜ˜1Ÿ7™7 4›=¬&°·±¸d°Ó1CÓ*DÔEÐEÐEÜ�A—G‘G �GÓ&Ó'ˆÜ�A—G‘G �GÓ&Ó'ˆÜ˜˜B“Kò 	‰DˆAˆqØ˜“6ˆM�6ð	à×Ñ×Ñ˜qÔ!ä×Ñ˜d×1Ñ1Ó2ˆÜ�a—g‘g˜d“mÓ$¬¨r¯x©x¸T¨xÓ/BÓ(CÒCÐCÐCÜ�A—G‘G �GÓ&Ó'ˆÜ�B—H‘H $�HÓ'Ó(ˆÜ˜˜B“Kò 	‰DˆAˆqØ˜“6ˆM�6ñ	rf   c                 óœ   — | j                   }t        j                  | j                  «      }|j                  d   |j                  d   k(  sJ ‚y )Nr   )rL   r=   rr   rM   rI   )ry   r   rz   s      rd   Ú#test_node_default_attribute_graphmlz3TestReadGraphML.test_node_default_attribute_graphml„  sA   € Ø×-Ñ-ˆÜ�O‰O˜D×:Ñ:Ó;ˆØ�w‰w�~Ñ&¨!¯'©'°.Ñ*AÒAÐAÑArf   c                 ó  — d}t        j                  |j                  d«      «      }t        j                  t
        j                  t
        j                  |«       t        j                  t
        j                  t
        j                  |«       y )NaÛ  <?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   ©	rC   rD   rE   ÚpytestÚraisesr=   ÚNetworkXErrorrr   rw   ©ry   Úsrc   s      rd   Ú test_directed_edge_in_undirectedz0TestReadGraphML.test_directed_edge_in_undirected‰  óX   € ðˆô �Z‰Z˜Ÿ™ Ó)Ó*ˆÜ�‰”b×&Ñ&¬¯©¸Ô<Ü�‰”b×&Ñ&¬×(8Ñ(8¸!Õ<rf   c                 ó  — d}t        j                  |j                  d«      «      }t        j                  t
        j                  t
        j                  |«       t        j                  t
        j                  t
        j                  |«       y )Naó  <?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   r‘   r•   s      rd   Ú test_undirected_edge_in_directedz0TestReadGraphML.test_undirected_edge_in_directed›  r˜   rf   c                 ó  — d}t        j                  |j                  d«      «      }t        j                  t
        j                  t
        j                  |«       t        j                  t
        j                  t
        j                  |«       y )Naô  <?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   r‘   r•   s      rd   Útest_key_raisezTestReadGraphML.test_key_raise­  sX   € ðˆô. �Z‰Z˜Ÿ™ Ó)Ó*ˆÜ�‰”b×&Ñ&¬¯©¸Ô<Ü�‰”b×&Ñ&¬×(8Ñ(8¸!Õ<rf   c                 ó  — d}t        j                  |j                  d«      «      }t        j                  t
        j                  t
        j                  |«       t        j                  t
        j                  t
        j                  |«       y )Na5  <?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   r‘   r•   s      rd   Útest_hyperedge_raisez$TestReadGraphML.test_hyperedge_raiseÉ  sX   € ðˆô2 �Z‰Z˜Ÿ™ Ó)Ó*ˆÜ�‰”b×&Ñ&¬¯©¸Ô<Ü�‰”b×&Ñ&¬×(8Ñ(8¸!Õ<rf   c                 óN  — d}t        j                  |j                  d«      «      }t        j                  |«      }ddg}t        |j                  d¬«      «      |k(  sJ ‚|j                  d«       t        j                  |«      }t        |j                  d¬«      «      |k(  sJ ‚y )Naß  <?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   )r
   r   r!   )r
   r   r#   T©Úkeysr   )	rC   rD   rE   r=   rr   rs   ru   rv   rw   ©ry   r–   rc   r   Úexpectedrz   s         rd   Útest_multigraph_keysz$TestReadGraphML.test_multigraph_keysç  s’   € ðˆô �Z‰Z˜Ÿ™ Ó)Ó*ˆÜ�O‰O˜BÓˆØ&Ð(:Ð;ˆÜ�a—g‘g 4�gÓ(Ó)¨XÒ5Ð5Ð5Ø
�‰�Œ
Ü×Ñ˜QÓˆÜ�a—g‘g 4�gÓ(Ó)¨XÒ5Ð5Ñ5rf   c                 ó°  — t        j                  «       }|j                  d«       |j                  d«       |j                  dddddifddddifdddd	d
œfdddddifdddddifdddddd
œfg«       t	        j
                  «       }t        j                  ||«       |j                  d«       t        j                  |t        ¬«      }t        |j                  dd¬«      |j                  dd¬«      «      sJ ‚|j                  |j                  k(  sJ ‚|j                  j                  «       D ������	ci c]k  \  }}t        |«      |j                  «       D ����	ci c]<  \  }}t        |«      |j                  «       D ��	ci c]  \  }}	t        |«      |	“Œ c}	}“Œ> c}	}}}“Œm }
}}}}}}	|j                  d«       t        j                  |t        t        ¬«      }|
|j                  k(  sJ ‚|j                  d«       |j                  «       }t        j                   |t        t        ¬«      }|
|j                  k(  sJ ‚yc c}	}w c c}	}}}w c c}	}}}}}w )zf
        Test that data and keys of edges are preserved on consequent
        write and reads
        r:   é   )r:   r¦   ÚkeyÚ	data_key1r   Údata_id2Ú	data_key3Údata_id3)r§   r   ég   Ú	data_key4éh   Údata_id5éi   Ú	data_key6Údata_id7r   ©Ú	node_typeT)rq   r¡   )r´   Úedge_key_typeN)r=   rY   r@   rB   rC   rD   Úwrite_graphmlrv   rr   Úintr   ru   Ú_adjÚitemsÚstrÚreadrw   )ry   r   rc   rz   ÚnodeÚnbr_dictÚnbrÚkey_dictÚekeyÚddÚGadjÚHHÚ	string_fhs                rd   Útest_preserve_multi_edge_dataz-TestReadGraphML.test_preserve_multi_edge_dataþ  s  € ô
 �M‰M‹OˆØ	�
‰
�1ŒØ	�
‰
�1ŒØ	×Ñð à�A˜˜{Ð+Ð,Ø�A˜˜jÐ)Ð*Ø�A˜{°*Ñ=Ð>à�A�s˜U KÐ0Ð1Ø�A�s˜T :Ð.Ð/Ø�A�s K°zÑBÐCðô	
ô �Z‰Z‹\ˆÜ
×Ñ˜˜BÔØ
�‰�Œ
Ü�O‰O˜B¬#Ô.ˆÜ˜1Ÿ7™7¨°4˜7Ó8¸!¿'¹'ÀtÐRV¸'Ó:WÔXÐXÐXØ�v‰v˜Ÿ™ÒÐÐð #$§&¡&§,¡,£.÷
ó 
ñ
 ��hô	 �‹Ià%-§^¡^Ó%5÷ñ á!�C˜ô �C“¸¿¹Ó9I×J©X¨T°2œ3˜t›9 b™=ÓJÑJõñ ð
ˆõ 
ð 	�‰�Œ
Ü�_‰_˜R¬3¼cÔBˆØ�r—w‘wŠÐˆà
�‰�Œ
Ø—G‘G“Iˆ	Ü×Ñ˜i´3ÄcÔJˆØ�r—w‘wŠÐ‰ùó Kùõù÷
s*   Ä4'IÅ%IÆ I &ÆIÆIÉ IÉIc                 óJ  — d}t        j                  |j                  d«      «      }t        j                  |d¬«      }t        |j                  «       «      dgk(  sJ ‚|j                  ddd¬	«      sJ ‚|j                  d   d
   dk(  sJ ‚|j                  d   d
   dk(  sJ ‚|j                  d   d
   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d«       t        j                  |«      }t        |j                  «       «      dgk(  sJ ‚|d   d   d   dk(  sJ ‚|j                  d   d
   dk(  sJ ‚|j                  d   d
   dk(  sJ ‚|j                  d   d
   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚t        j                  |d¬«      }t        |j                  «       «      dgk(  sJ ‚|j                  ddd¬	«      sJ ‚|j                  d   d
   dk(  sJ ‚|j                  d   d
   dk(  sJ ‚|j                  d   d
   dk(  sJ ‚t        j                  |«      }t        |j                  «       «      dgk(  sJ ‚|d   d   d   dk(  sJ ‚|j                  d   d
   dk(  sJ ‚|j                  d   d
   dk(  sJ ‚|j                  d   d
   dk(  sJ ‚y )NaI  <?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_multigraph)r
   r   r
   r   r!   )r§   Úlabelr6   Ú2r   Ú3Ú
shape_typeÚ	rectanglezcom.yworks.flowchart.terminatorÚdescriptionzdescription
line1
line2r   r   )rC   rD   rE   r=   rr   Úlistru   Úhas_edgert   rv   rw   )ry   rq   rc   r   rz   s        rd   Útest_yfiles_extensionz%TestReadGraphML.test_yfiles_extension+  s]  € ðYˆôt �Z‰Z˜Ÿ™ GÓ,Ó-ˆÜ�O‰O˜B°Ô6ˆÜ�A—G‘G“I‹ < .Ò0Ð0Ð0Ø�z‰z˜$ ¨$ˆzÔ/Ð/Ð/Ø�w‰w�t‰}˜WÑ%¨Ò,Ð,Ð,Ø�w‰w�t‰}˜WÑ%¨Ò,Ð,Ð,Ø�w‰w�t‰}˜WÑ%¨Ò,Ð,Ð,Ø�w‰w�t‰}˜\Ñ*¨kÒ9Ð9Ð9Ø�w‰w�t‰}˜\Ñ*¨kÒ9Ð9Ð9Ø�w‰w�t‰}˜\Ñ*Ð.OÒOÐOÐOØ�w‰w�t‰}˜]Ñ+Ð/JÒJÐJÐJØ
�‰�Œ
Ü�O‰O˜BÓˆÜ�A—G‘G“I‹ < .Ò0Ð0Ð0Ø�‰w�t‰}˜TÑ" dÒ*Ð*Ð*Ø�w‰w�t‰}˜WÑ%¨Ò,Ð,Ð,Ø�w‰w�t‰}˜WÑ%¨Ò,Ð,Ð,Ø�w‰w�t‰}˜WÑ%¨Ò,Ð,Ð,Ø�w‰w�t‰}˜\Ñ*¨kÒ9Ð9Ð9Ø�w‰w�t‰}˜\Ñ*¨kÒ9Ð9Ð9Ø�w‰w�t‰}˜\Ñ*Ð.OÒOÐOÐOØ�w‰w�t‰}˜]Ñ+Ð/JÒJÐJÐJä×Ñ˜T°DÔ9ˆÜ�A—G‘G“I‹ < .Ò0Ð0Ð0Ø�z‰z˜$ ¨$ˆzÔ/Ð/Ð/Ø�w‰w�t‰}˜WÑ%¨Ò,Ð,Ð,Ø�w‰w�t‰}˜WÑ%¨Ò,Ð,Ð,Ø�w‰w�t‰}˜WÑ%¨Ò,Ð,Ð,ä×Ñ˜TÓ"ˆÜ�A—G‘G“I‹ < .Ò0Ð0Ð0Ø�‰w�t‰}˜TÑ" dÒ*Ð*Ð*Ø�w‰w�t‰}˜WÑ%¨Ò,Ð,Ð,Ø�w‰w�t‰}˜WÑ%¨Ò,Ð,Ð,Ø�w‰w�t‰}˜WÑ%¨Ò,Ð,Ñ,rf   c                 ó¦  — d}t        j                  |j                  d«      «      }t        j                  |«      }t        j
                  |«      }||fD ]z  }|j                  d   d   sJ ‚|j                  d   d   rJ ‚|j                  d   d   rJ ‚|j                  d   d   sJ ‚|j                  d   d   rJ ‚|j                  d	   d   rŒzJ ‚ y )
NaU  <?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   r   )rC   rD   rE   r=   rr   rw   rt   )ry   r–   rc   r   rz   rI   s         rd   Ú	test_boolzTestReadGraphML.test_bool«  sÝ   € ðˆô> �Z‰Z˜Ÿ™ Ó)Ó*ˆÜ�O‰O˜BÓˆÜ×Ñ˜QÓˆØ˜�Vò 	-ˆEØ—;‘;˜tÑ$ VÒ,Ð,Ð,Ø—{‘{ 4Ñ(¨Ò0Ð0Ð0Ø—{‘{ 4Ñ(¨Ò0Ð0Ð0Ø—;‘;˜tÑ$ VÒ,Ð,Ð,Ø—{‘{ 4Ñ(¨Ò0Ð0Ð0Ø—;‘;˜tÑ$ VÓ,Ð,Ð,ñ	-rf   c                 ó  — d}d}d}||fD ]m  }t        j                  |j                  d«      «      }t        j                  |«      }t        j
                  |«      }||fD ]  }|j                  d   d   rŒJ ‚ Œo t        j                  |j                  d«      «      }t        j                  t        j                  t        j                  |«       t        j                  t        j                  t        j
                  |«       y )Naþ  <?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Ó   )
rC   rD   rE   r=   rr   rw   rt   r’   r“   r”   )	ry   ÚgoodÚbadÚuglyr–   rc   r   rz   rI   s	            rd   Útest_graphml_header_linez(TestReadGraphML.test_graphml_header_lineÖ  sÚ   € ðˆðˆðˆð ˜�ò 	1ˆAÜ—‘˜AŸH™H WÓ-Ó.ˆBÜ—‘ Ó#ˆAÜ× Ñ  Ó#ˆAØ˜Q˜ò 1�Ø—{‘{ 4Ñ(¨Ó0Ð0Ð0ñ1ð		1ô �Z‰Z˜Ÿ™ GÓ,Ó-ˆÜ�‰”b×&Ñ&¬¯©¸Ô<Ü�‰”b×&Ñ&¬×(8Ñ(8¸$Õ?rf   c                 ó  — d}t        j                  |j                  d«      «      }t        j                  |«      }|j                  d¬«      D ��cg c]  \  }}|‘Œ	 }}}t        |«      dk(  sJ ‚|D ]  }|d   dk7  rŒJ ‚ y c c}}w )Na‡I  <?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   Trp   é	   ÚCustomPropertyÚ )rC   rD   rE   r=   rr   rt   Úlen)ry   rq   rc   r   Ú_ÚxÚ	node_datas          rd   Ú test_read_attributes_with_groupsz0TestReadGraphML.test_read_attributes_with_groups	  sŒ   € ðZˆôx �Z‰Z˜Ÿ™ GÓ,Ó-ˆÜ�O‰O˜BÓˆØŸg™g¨4˜gÓ0×1‘d�a˜’Ð1ˆÑ1Ü�4‹y˜AŠ~Ðˆ~Øò 	5ˆIØÐ-Ñ.°"Ó4Ð4Ð4ñ	5ùó 2s   ÁBc                 óT  — d}t        j                  |j                  d«      «      }t        j                  |«      }dddifg}t        |j                  d¬«      «      |k(  sJ ‚|j                  d«       t        j                  |«      }t        |j                  d¬«      «      |k(  sJ ‚y )	NaÝ  <?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¼  Trp   r   )	rC   rD   rE   r=   rr   rs   rt   rv   rw   r¢   s         rd   Útest_long_attribute_typez(TestReadGraphML.test_long_attribute_type-  s™   € ðˆô �Z‰Z˜Ÿ™ Ó)Ó*ˆÜ�O‰O˜BÓˆØ˜M¨4Ð0Ð1Ð2ˆÜ�a—g‘g 4�gÓ(Ó)¨XÒ5Ð5Ð5Ø
�‰�Œ
Ü×Ñ˜QÓˆÜ�a—g‘g 4�gÓ(Ó)¨XÒ5Ð5Ñ5rf   N)rg   rh   ri   r|   r   r�   rƒ   r†   r�   r�   r—   rš   rœ   rž   r¤   rÅ   rÑ   rÔ   rÙ   râ   rå   rk   rf   rd   rm   rm   9  sf   „ òIò	2ò	2ò	2ò	2òò"Bò
=ò$=ò$=ò8=ò<6ò.+òZ~-ò@)-òV1@òfb5óH	6rf   rm   c                   ó²   — e Zd Z eej
                  «      Zed„ «       Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestWriteGraphMLc                 óV   — t         j                  «        t        j                  d«      }y )Nú
lxml.etree)r   re   r’   Úimportorskip)rb   rß   s     rd   re   zTestWriteGraphML.setup_classH  s   € ä×ÑÔ!Ü×Ñ Ó-‰rf   c                 ó¸   — 	 dd l }t        j                  t        j                  k(  sJ ‚y # t        $ r& t        j                  t        j
                  k(  sJ ‚Y y w xY wr~   )Ú
lxml.etreer=   r¶   Úwrite_graphml_lxmlÚImportErrorÚwrite_graphml_xml)ry   Úlxmls     rd   Útest_write_interfacez%TestWriteGraphML.test_write_interfaceM  sM   € ð	<Ûä×#Ñ#¤r×'<Ñ'<Ò<Ð<Ñ<øÜò 	<Ü×#Ñ#¤r×';Ñ';Ò;Ð;Ò;ð	<ús   ‚'* ª,AÁAc                 óN  — | j                   }d|j                  d<   t        j                  «       }| j	                  ||«       |j                  d«       t        j                  |«      }t        |j                  «       «      t        |j                  «       «      k(  sJ ‚t        |j                  «       «      t        |j                  «       «      k(  sJ ‚t        |j                  d¬«      «      t        |j                  d¬«      «      k(  sJ ‚| j                  j                  d«       y )NÚthereÚhir   Trp   ©r?   rI   rC   rD   Úwriterrv   r=   rr   rs   rt   ru   rF   ©ry   r   rc   rz   s       rd   Ú'test_write_read_simple_directed_graphmlz8TestWriteGraphML.test_write_read_simple_directed_graphmlU  sÖ   € Ø×&Ñ&ˆØˆ�‰�‰Ü�Z‰Z‹\ˆØ�‰�A�rÔØ
�‰�Œ
Ü�O‰O˜BÓˆÜ�a—g‘g“iÓ ¤F¨1¯7©7«9Ó$5Ò5Ð5Ð5Ü�a—g‘g“iÓ ¤F¨1¯7©7«9Ó$5Ò5Ð5Ð5Ü�a—g‘g 4�gÓ(Ó)¬V°A·G±GÀ°GÓ4FÓ-GÒGÐGÐGØ×Ñ×$Ñ$ QÕ'rf   c                 óv   — t        «       }| j                  }|j                  «       }|j                  ||g«       y ©N)r   r?   ÚcopyÚ
add_graphs)ry   Úgmlwr   rz   s       rd   Útest_GraphMLWriter_add_graphsz.TestWriteGraphML.test_GraphMLWriter_add_graphsa  s/   € Ü‹ˆØ×&Ñ&ˆØ�F‰F‹HˆØ�‰˜˜A˜Õrf   c                 óp  — | j                   }d|j                  d<   d|j                  d<   t        j                  «       }| j	                  ||d¬«       |j                  d«       t        j                  |«      }t        |j                  «       «      t        |j                  «       «      k(  sJ ‚t        |j                  «       «      t        |j                  «       «      k(  sJ ‚t        |j                  d¬	«      «      t        |j                  d¬	«      «      k(  sJ ‚| j                  j                  d«       y )
Nró   rô   r6   r   F)Úprettyprintr   Trp   rõ   r÷   s       rd   Ú%test_write_read_simple_no_prettyprintz6TestWriteGraphML.test_write_read_simple_no_prettyprintg  sç   € Ø×&Ñ&ˆØˆ�‰�‰Øˆ�‰�‰Ü�Z‰Z‹\ˆØ�‰�A�r uˆÔ-Ø
�‰�Œ
Ü�O‰O˜BÓˆÜ�a—g‘g“iÓ ¤F¨1¯7©7«9Ó$5Ò5Ð5Ð5Ü�a—g‘g“iÓ ¤F¨1¯7©7«9Ó$5Ò5Ð5Ð5Ü�a—g‘g 4�gÓ(Ó)¬V°A·G±GÀ°GÓ4FÓ-GÒGÐGÐGØ×Ñ×$Ñ$ QÕ'rf   c                 ód  — ddl m} | j                  }t        j                  «       }| j                  ||d¬«       |j                  d«       t        j                  |«      }|j                  d«       t        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚t        |j                  d¬«      |j                  d¬«      «      sJ ‚| j                  j                  d«        ||«      }t        |j                  «       «      }t!        |«      dk(  sJ ‚|d d D �cg c]  }|j#                  «       ‘Œ }}t!        |«      dk(  sJ ‚d|d   v sJ ‚d	|d   v sJ ‚d
|d   v sJ ‚d|d   v sJ ‚d|d   v sJ ‚d|d   v sJ ‚t        j                  «       }	t        j$                  ||	«       |	j                  d«       t        j                  |	«      }t        j                  «       }
t        j$                  ||
d¬«       |
j                  d«       t        j                  |
«      }t'        d„ t)        |j                  |j                  «      D «       «      sJ ‚t'        d„ t)        |j                  |j                  «      D «       «      sJ ‚y c c}w )Nr   ©ÚparseT)Únamed_key_idsrp   é   é   )r   r9   )ú	attr.namer9   )r   r5   r:   )r  r5   )r   r4   r¦   )r  r4   c              3   ó,   K  — | ]  \  }}||k(  –— Œ y ­wrú   rk   )Ú.0r   r   s      rd   ú	<genexpr>zSTestWriteGraphML.test_write_read_attribute_named_key_ids_graphml.<locals>.<genexpr>ž  ó   è ø€ ÒB¡  R�2˜•8ÑBùó   ‚c              3   ó,   K  — | ]  \  }}||k(  –— Œ y ­wrú   rk   )r
  r#   r$   s      rd   r  zSTestWriteGraphML.test_write_read_attribute_named_key_ids_graphml.<locals>.<genexpr>Ÿ  r  r  )Úxml.etree.ElementTreer  rO   rC   rD   rö   rv   r=   rr   r   rt   r   ru   rP   rÏ   ÚgetrootrÞ   r¹   r¶   Úallrˆ   )ry   r  r   rc   rz   ÚxmlÚchildrenÚchildr¡   Údefault_behavior_fhÚnamed_key_ids_behavior_fhÚJs               rd   Ú/test_write_read_attribute_named_key_ids_graphmlz@TestWriteGraphML.test_write_read_attribute_named_key_ids_graphmlt  sL  € Ý/à×.Ñ.ˆÜ�Z‰Z‹\ˆØ�‰�A�r¨ˆÔ.Ø
�‰�Œ
Ü�O‰O˜BÓˆØ
�‰�Œ
ä˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ü˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ü˜1Ÿ7™7¨˜7Ó-¨q¯w©w¸D¨wÓ/AÔBÐBÐBØ×'Ñ'×,Ñ,¨QÔ/á�B‹iˆä˜Ÿ™›Ó&ˆÜ�8‹} Ò!Ð!Ð!à+3°B°Q¨<Ö8 %�—‘•Ð8ˆÐ8ä�4‹y˜AŠ~Ðˆ~Ø" d¨1¡gÑ-Ð-Ð-Ø)¨T°!©WÑ4Ð4Ð4Ø $ q¡'Ñ)Ð)Ð)Ø%¨¨a©Ñ0Ð0Ð0Ø $ q¡'Ñ)Ð)Ð)Ø%¨¨a©Ñ0Ð0Ð0ô !Ÿj™j›lÐÜ
×Ñ˜Ð/Ô0Ø× Ñ  Ô#Ü�O‰OÐ/Ó0ˆä$&§J¡J£LÐ!Ü
×Ñ˜Ð5ÀTÕJØ!×&Ñ& qÔ)Ü�O‰OÐ5Ó6ˆäÑB¬C°·±¸¿¹Ó,AÔBÔBÐBÐBÜÑB¬C°·±¸¿¹Ó,AÔBÔBÐBÑBùò/ 9s   ÅJ-c                 ó  — ddl m} | j                  }t        j                  «       }| j                  ||d¬«       |j                  d«       t        j                  |«      }|j                  d«       t        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚t        |j                  d¬«      |j                  d¬«      «      sJ ‚| j                  j                  d«        ||«      }t        |j                  «       «      }t!        |«      dk(  sJ ‚|d d D �cg c]  }|j#                  «       ‘Œ }}t!        |«      dk(  sJ ‚d|d   v sJ ‚d|d	   v sJ ‚y c c}w )
Nr   r  T©Úinfer_numeric_typesrp   r  r¦   )z	attr.typeÚdoubler:   )r  r  rR   rC   rD   rö   rv   r=   rr   r   rt   r   ru   rS   rÏ   r  rÞ   r¹   )	ry   r  r   rc   rz   r  r  r  r¡   s	            rd   Ú.test_write_read_attribute_numeric_type_graphmlz?TestWriteGraphML.test_write_read_attribute_numeric_type_graphml¡  sF  € Ý/à×-Ñ-ˆÜ�Z‰Z‹\ˆØ�‰�A�r¨tˆÔ4Ø
�‰�Œ
Ü�O‰O˜BÓˆØ
�‰�Œ
ä˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ü˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ü˜1Ÿ7™7¨˜7Ó-¨q¯w©w¸D¨wÓ/AÔBÐBÐBØ×&Ñ&×+Ñ+¨AÔ.á�B‹iˆä˜Ÿ™›Ó&ˆÜ�8‹} Ò!Ð!Ð!à+3°B°Q¨<Ö8 %�—‘•Ð8ˆÐ8ä�4‹y˜AŠ~Ðˆ~Ø&¨$¨q©'Ñ1Ð1Ð1Ø&¨$¨q©'Ñ1Ð1Ñ1ùò	 9s   ÅFc                 ó`  — t        j                  «       }|j                  ddg«       |dz  }| j                  ||«       t        j                  |«      }|j                  «       sJ ‚t        |j                  d¬«      |j                  d¬«      «      sJ ‚|j                  |j                  k(  sJ ‚y)zàWriting 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.
        ©r‹   rŒ   r¦   )r‹   rŒ   r  útest.graphmlTr    N)	r=   rY   rB   rö   rr   Úis_multigraphr   ru   r¸   ©ry   Útmp_pathr   Úfnamerz   s        rd   Útest_more_multigraph_keysz*TestWriteGraphML.test_more_multigraph_keys»  s”   € ô �M‰M‹OˆØ	×Ñ˜-¨Ð7Ô8Ø˜>Ñ)ˆØ�‰�A�uÔÜ�O‰O˜EÓ"ˆØ�‰Ô Ð Ð Ü˜1Ÿ7™7¨˜7Ó-¨q¯w©w¸D¨wÓ/AÔBÐBÐBØ�v‰v˜Ÿ™ÒÐÑrf   c                 óv  — t        j                  d¬«      }|j                  ddd¬«       t        j                  |g d¢«       |j	                  ddd¬	«       d
di|j
                  d<   ddi|j
                  d<   t        j                  «       }| j                  ||«       |j                  d«       t        j                  |t        ¬«      }t        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚|j
                  |j
                  k(  sJ ‚y )NÚFred)Únamer:   r   )rÉ   r   )r   r:   r¦   r  r¦   r  r;   r   r   r   r"   é   Úedge_defaultr   r³   )r=   rU   r@   Úadd_pathrA   rI   rC   rD   rö   rv   rr   r·   r   rt   r   ru   r÷   s       rd   Útest_default_attributez'TestWriteGraphML.test_default_attributeÊ  sé   € Ü�H‰H˜&Ô!ˆØ	�
‰
�1˜A Wˆ
Ô-Ü
�‰�A’|Ô$Ø	�
‰
�1�a ˆ
Ô"Ø#*¨HÐ"5ˆ�‰�ÑØ#+¨Q -ˆ�‰�ÑÜ�Z‰Z‹\ˆØ�‰�A�rÔØ
�‰�Œ
Ü�O‰O˜B¬#Ô.ˆÜ˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ü˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ø�w‰w˜!Ÿ'™'Ò!Ð!Ñ!rf   c                 ó  — t        j                  «       }|j                  dd¬«       |j                  dd¬«       |j                  ddd¬«       |j                  ddd¬«       t	        j
                  «       }| j                  ||«       |j                  d«       t        j                  |«      }|j                  d   d   rJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   rJ ‚|j                  d   d   dk(  sJ ‚y )	Nr
   F©Úspecialr   r   r/  ©r
   r   r   ©r
   r   r:   ©r=   rY   r@   rA   rC   rD   rö   rv   rr   rt   ru   r÷   s       rd   Útest_mixed_type_attributesz+TestWriteGraphML.test_mixed_type_attributesÙ  sç   € Ü�M‰M‹OˆØ	�
‰
�4 ˆ
Ô'Ø	�
‰
�4 ˆ
Ô#Ø	�
‰
�4˜ uˆ
Ô-Ø	�
‰
�4˜ qˆ
Ô)Ü�Z‰Z‹\ˆØ�‰�A�rÔØ
�‰�Œ
Ü�O‰O˜BÓˆØ—7‘7˜4‘= Ò+Ð+Ð+Ø�w‰w�t‰}˜YÑ'¨1Ò,Ð,Ð,Ø—7‘7˜=Ñ)¨)Ò4Ð4Ð4Ø�w‰w�}Ñ% iÑ0°AÒ5Ð5Ñ5rf   c                 ó  — t        j                  «       }|j                  dd¬«       |j                  dd¬«       |j                  ddd¬«       |j                  ddd¬«       t	        j
                  «       }| j                  ||«       |j                  d«       t        j                  |«      }|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚y )	Nr
   Úhellor.  r   r   r/  r0  r1  r2  r÷   s       rd   Ú%test_str_number_mixed_type_attributesz6TestWriteGraphML.test_str_number_mixed_type_attributesè  sñ   € Ü�M‰M‹OˆØ	�
‰
�4 ˆ
Ô)Ø	�
‰
�4 ˆ
Ô#Ø	�
‰
�4˜ wˆ
Ô/Ø	�
‰
�4˜ qˆ
Ô)Ü�Z‰Z‹\ˆØ�‰�A�rÔØ
�‰�Œ
Ü�O‰O˜BÓˆØ�w‰w�t‰}˜YÑ'¨7Ò2Ð2Ð2Ø�w‰w�t‰}˜YÑ'¨1Ò,Ð,Ð,Ø�w‰w�}Ñ% iÑ0°GÒ;Ð;Ð;Ø�w‰w�}Ñ% iÑ0°AÒ5Ð5Ñ5rf   c                 ó~  — t        j                  d«      }t        j                  «       }|j	                  d|j                  d«      ¬«       |j	                  dd¬«       |j                  dd|j                  d«      ¬«       |j                  ddd¬«       t        j                  «       }| j                  ||«       |j                  d«       t        j                  |«      }|j                  d   d	   dk(  sJ ‚|j                  d   d	   dk(  sJ ‚|j                  d
   d	   dk(  sJ ‚|j                  d   d	   dk(  sJ ‚y )NÚnumpyr
   r   r.  r   r:   r¦   r  r/  r0  r1  )r’   rê   r=   rY   r@   Úint64rA   rC   rD   rö   rv   rr   rt   ru   )ry   Únpr   rc   rz   s        rd   Ú%test_mixed_int_type_number_attributesz6TestWriteGraphML.test_mixed_int_type_number_attributes÷  s  € Ü× Ñ  Ó)ˆÜ�M‰M‹OˆØ	�
‰
�4 §¡¨!£ˆ
Ô-Ø	�
‰
�4 ˆ
Ô#Ø	�
‰
�4˜ r§x¡x°£{ˆ
Ô3Ø	�
‰
�4˜ qˆ
Ô)Ü�Z‰Z‹\ˆØ�‰�A�rÔØ
�‰�Œ
Ü�O‰O˜BÓˆØ�w‰w�t‰}˜YÑ'¨1Ò,Ð,Ð,Ø�w‰w�t‰}˜YÑ'¨1Ò,Ð,Ð,Ø�w‰w�}Ñ% iÑ0°AÒ5Ð5Ð5Ø�w‰w�}Ñ% iÑ0°AÒ5Ð5Ñ5rf   c                 ó  — t        j                  «       }|j                  ddg«       |dz  }| j                  ||«       t        j                  |«      }|j                  «       rJ ‚t        j                  |d¬«      }|j                  «       sJ ‚|j                  ddd«       |dz  }| j                  ||«       t        j                  |«      }|j                  «       sJ ‚t        j                  |d¬«      }|j                  «       sJ ‚y )	Nr  )rŒ   Úcr  r   TrÇ   r‹   rŒ   ze-id)r=   rY   rB   rö   rr   r!  rA   r"  s        rd   Útest_multigraph_to_graphz)TestWriteGraphML.test_multigraph_to_graph  sÞ   € ä�M‰M‹OˆØ	×Ñ˜-¨Ð7Ô8Ø˜>Ñ)ˆØ�‰�A�uÔÜ�O‰O˜EÓ"ˆØ—?‘?Ô$Ð$Ð$Ü�O‰O˜E°DÔ9ˆØ�‰Ô Ð Ð ð 	
�
‰
�3˜˜VÔ$Ø˜>Ñ)ˆØ�‰�A�uÔÜ�O‰O˜EÓ"ˆØ�‰Ô Ð Ð Ü�O‰O˜E°DÔ9ˆØ�‰Ô Ð Ñ rf   c                 ón  — ddl m} t        j                  «       }|j	                  g d¢«       |j
                  D �ci c]  }|t        |«      “Œ }}t        j                  ||d«       |dz  }| j                  ||d¬«       t        j                  |d¬«      }t        j                  |«      }t        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚t        j                  ||d«       t        |j                  d¬	«      |j                  d¬	«      «      sJ ‚ ||«      }	t        |	j                  «       «      }
t!        |
«      d
k(  sJ ‚|	j                  «       j#                  d«      D �cg c]  }|j$                  d   ‘Œ }}t'        |«      t'        |j)                  «       «      k(  sJ ‚dj+                  |«      }t        j,                  |«      }t'        |j                  «       «      t'        |j                  «       «      k(  sJ ‚t'        |j                  «       «      t'        |j                  «       «      k(  sJ ‚t        j                  ||d«       t        |j                  d¬	«      |j                  d¬	«      «      sJ ‚y c c}w c c}w )Nr   r  )©r‹   rŒ   ©rŒ   r=  ©r‹   r=  Úeidr   ©Úedge_id_from_attributer   Trp   r¦   ú..//{http://graphml.graphdrawing.org/xmlns}edgerÝ   )r  r  r=   rU   rB   ru   rº   Úset_edge_attributesrö   Úgenerate_graphmlrr   r   rt   r   rÏ   r  rÞ   ÚfindallÚattribrs   ÚvaluesÚjoinrw   )ry   r#  r  r   ÚeÚedge_attributesr$  Ú	generatorrz   Útreer  ÚedgeÚedge_idsrq   r  s                  rd   Ú*test_write_generate_edge_id_from_attributez;TestWriteGraphML.test_write_generate_edge_id_from_attribute  s1  € Ý/ä�H‰H‹JˆØ	×ÑÒ=Ô>Ø./¯g©gÖ6¨˜1œc !›f™9Ð6ˆÐ6Ü
×Ñ˜q /°5Ô9Ø˜>Ñ)ˆà�‰�A�u°UˆÔ;ä×'Ñ'¨À%ÔHˆ	ä�O‰O˜EÓ"ˆÜ˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ü˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0ä
×Ñ˜q /°4Ô8Ü˜1Ÿ7™7¨˜7Ó-¨q¯w©w¸D¨wÓ/AÔBÐBÐBá�U‹|ˆÜ˜Ÿ™›Ó'ˆÜ�8‹} Ò!Ð!Ð!ð Ÿ™›×.Ñ.Ø@óö
àð �K‰K˜Óð
ˆð 
ô �hÓ¤6¨/×*@Ñ*@Ó*BÓ#CÒCÐCÐCð �w‰w�yÓ!ˆÜ×Ñ˜TÓ"ˆÜ�a—g‘g“iÓ ¤F¨1¯7©7«9Ó$5Ò5Ð5Ð5Ü�a—g‘g“iÓ ¤F¨1¯7©7«9Ó$5Ò5Ð5Ð5ä
×Ñ˜q /°4Ô8Ü˜1Ÿ7™7¨˜7Ó-¨q¯w©w¸D¨wÓ/AÔBÐBÑBùòE 7ùò$
s   ¼J-ÆJ2c                 ó¸  — ddl m} t        j                  «       }|j	                  g d¢«       |j
                  D �ci c]  }|t        |«      “Œ }}t        j                  ||d«       |dz  }| j                  ||d¬«       t        j                  |d¬«      }t        j                  |«      }|j                  «       sJ ‚t        j                  |d¬«      }|j                  «       sJ ‚t        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚t        d	„ |j                  d¬
«      D «       «      t        |j!                  «       «      k(  sJ ‚t        d„ |j                  d¬«      D «       «      t        |j!                  «       «      k(  sJ ‚ ||«      }	t#        |	j%                  «       «      }
t'        |
«      dk(  sJ ‚|	j%                  «       j)                  d«      D �cg c]  }|j*                  d   ‘Œ }}t        |«      t        |j!                  «       «      k(  sJ ‚dj-                  |«      }t        j.                  |«      }|j                  «       sJ ‚t        |j                  «       |j                  «       «      sJ ‚t        |j                  «       |j                  «       «      sJ ‚t        d„ |j                  d¬
«      D «       «      t        |j!                  «       «      k(  sJ ‚t        d„ |j                  d¬«      D «       «      t        |j!                  «       «      k(  sJ ‚y c c}w c c}w )Nr   r  )r@  rA  rB  r@  rC  r   rD  TrÇ   c              3   óF   K  — | ]  \  }}}|j                  d «      –— Œ y­w©rC  N©Úget©r
  ÚuÚvrq   s       rd   r  zYTestWriteGraphML.test_multigraph_write_generate_edge_id_from_attribute.<locals>.<genexpr>X  ó   è ø€ ÒK©*¨!¨Q°�d—h‘h˜u—oÑKùó   ‚!rp   c              3   ó(   K  — | ]
  \  }}}|–— Œ y ­wrú   rk   ©r
  rZ  r[  r§   s       rd   r  zYTestWriteGraphML.test_multigraph_write_generate_edge_id_from_attribute.<locals>.<genexpr>\  ó   è ø€ Ò>™i˜a  C”cÑ>ùó   ‚r    r¦   rF  r   rÝ   c              3   óF   K  — | ]  \  }}}|j                  d «      –— Œ y­wrV  rW  rY  s       rd   r  zYTestWriteGraphML.test_multigraph_write_generate_edge_id_from_attribute.<locals>.<genexpr>s  r\  r]  c              3   ó(   K  — | ]
  \  }}}|–— Œ y ­wrú   rk   r_  s       rd   r  zYTestWriteGraphML.test_multigraph_write_generate_edge_id_from_attribute.<locals>.<genexpr>w  r`  ra  )r  r  r=   rY   rB   ru   rº   rG  rö   rH  rr   r!  r   rt   r   rs   rK  rÏ   r  rÞ   rI  rJ  rL  rw   )ry   r#  r  r   rM  rN  r$  rO  rz   rP  r  rQ  rR  Úgraphml_datar  s                  rd   Ú5test_multigraph_write_generate_edge_id_from_attributezFTestWriteGraphML.test_multigraph_write_generate_edge_id_from_attributeD  sç  € Ý/ä�M‰M‹OˆØ	×ÑÒIÔJØ./¯g©gÖ6¨˜1œc !›f™9Ð6ˆÐ6Ü
×Ñ˜q /°5Ô9Ø˜>Ñ)ˆà�‰�A�u°UˆÔ;ä×'Ñ'¨À%ÔHˆ	ä�O‰O˜EÓ"ˆØ�‰Ô Ð Ð Ü�O‰O˜E°DÔ9ˆØ�‰Ô Ð Ð ä˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ü˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0ÜÑK¸¿¹ÀT¸Ó8JÔKÓKÌvØ×"Ñ"Ó$óP
ò 
ð 	
ð 
ô Ñ>¨1¯7©7¸¨7Ó+=Ô>Ó>Ä&Ø×"Ñ"Ó$óC
ò 
ð 	
ð 
ñ �U‹|ˆÜ˜Ÿ™›Ó'ˆÜ�8‹} Ò!Ð!Ð!ð Ÿ™›×.Ñ.Ø@óö
àð �K‰K˜Óð
ˆð 
ô �hÓ¤6¨/×*@Ñ*@Ó*BÓ#CÒCÐCÐCð —w‘w˜yÓ)ˆÜ×Ñ˜\Ó*ˆØ�‰Ô Ð Ð ä˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0Ü˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ð0ÜÑK¸¿¹ÀT¸Ó8JÔKÓKÌvØ×"Ñ"Ó$óP
ò 
ð 	
ð 
ô Ñ>¨1¯7©7¸¨7Ó+=Ô>Ó>Ä&Ø×"Ñ"Ó$óC
ò 
ð 	
ñ 
ùò] 7ùò4
s   ¼MÈ
Mc                 óà  — t        j                  d«      }|j                  d«      }t        j                  ddd|ifg«      }|dz  }| j                  ||«       t        j                  |t        ¬«      }|j                  |j                  k(  sJ ‚|d   d   d   }|d   d   d   }|t        j                  |d¬	«      k(  sJ ‚t        |«      |j                  k(  sJ ‚t        |«      t        k(  sJ ‚y ©
Nr8  g333333@r:   r¦   r"   r   r³   g�íµ ÷Æ°>)Úabs)r’   rê   Úfloat64r=   rU   rö   rr   r·   ru   ÚapproxÚtypeÚfloat©	ry   r#  r:  Úwtr   r$  rz   ÚwtGÚwtHs	            rd   Útest_numpy_float64z#TestWriteGraphML.test_numpy_float64{  óÞ   € Ü× Ñ  Ó)ˆØ�Z‰Z˜‹_ˆÜ�H‰H�q˜!˜h¨˜^Ð,Ð-Ó.ˆØ˜>Ñ)ˆØ�‰�A�uÔÜ�O‰O˜E¬SÔ1ˆØ�w‰w˜!Ÿ'™'Ò!Ð!Ð!Ø�‰d�1‰g�hÑˆØ�‰d�1‰g�hÑˆØ”f—m‘m C¨TÔ2Ò2Ð2Ð2Ü�C‹y˜BŸJ™JÒ&Ð&Ð&Ü�C‹yœEÒ!Ð!Ñ!rf   c                 óà  — t        j                  d«      }|j                  d«      }t        j                  ddd|ifg«      }|dz  }| j                  ||«       t        j                  |t        ¬«      }|j                  |j                  k(  sJ ‚|d   d   d   }|d   d   d   }|t        j                  |d¬	«      k(  sJ ‚t        |«      |j                  k(  sJ ‚t        |«      t        k(  sJ ‚y rg  )r’   rê   Úfloat32r=   rU   rö   rr   r·   ru   rj  rk  rl  rm  s	            rd   Útest_numpy_float32z#TestWriteGraphML.test_numpy_float32‰  rr  rf   c                 ó  — t        j                  d«      }| j                  }|j                  d«      |j                  d   d<   |dz  }| j                  ||d¬«       t        j                  |«      }|j                  |j                  k(  sJ ‚y )Nr8  r)   )r   r   r"   r   Tr  )	r’   rê   rR   ri  ru   rö   r=   rr   r¸   )ry   r#  r:  r   r$  rz   s         rd   Útest_numpy_float64_inferencez-TestWriteGraphML.test_numpy_float64_inference—  sx   € Ü× Ñ  Ó)ˆØ×-Ñ-ˆØ*,¯*©*°S«/ˆ�‰�Ñ˜hÑ'Ø˜>Ñ)ˆØ�‰�A�u°$ˆÔ7Ü�O‰O˜EÓ"ˆØ�v‰v˜Ÿ™ÒÐÑrf   c                 ó~  — t        j                  «       }t        d«      t        d«      z   t        d«      z   }t        d«      t        d«      z   t        d«      z   }t        }|j	                  |d|¬«       |d	z  }| j                  ||«       t        j                  ||¬
«      }|j                  |j                  k(  sJ ‚y )Ni(	  é{   i�  i§  i  iD  Ú	Radiohead)r   r   r³   )r=   rU   Úchrrº   rA   rö   rr   r¸   )ry   r#  r   Úname1Úname2r´   r$  rz   s           rd   Útest_unicode_attributesz(TestWriteGraphML.test_unicode_attributes   s˜   € Ü�H‰H‹JˆÜ�D“	œC ›HÑ$¤s¨4£yÑ0ˆÜ�D“	œC ›IÑ%¬¨C«Ñ0ˆÜˆ	Ø	�
‰
�5˜+¨5ˆ
Ô1Ø˜>Ñ)ˆØ�‰�A�uÔÜ�O‰O˜E¨YÔ7ˆØ�v‰v˜Ÿ™ÒÐÑrf   c                 óV  — dd l }ddi}|j                  |«      }t        j                  «       }||j                  d<   t        j                  «       }| j                  ||«       |j                  d«       t        j                  |«      }|j                  d   |j                  d   k(  sJ ‚y )Nr   r‹   z{"a": "123"}rÓ   )
ÚjsonÚdumpsr=   rU   rI   rC   rD   rö   rv   rr   )ry   r€  r‹   Úsar   rc   rz   s          rd   Útest_unicode_escapez$TestWriteGraphML.test_unicode_escape«  s„   € ãà�.Ð!ˆØ�Z‰Z˜‹]ˆÜ�H‰H‹JˆØˆ�‰�‰Ü�Z‰Z‹\ˆØ�‰�A�rÔØ
�‰�Œ
Ü�O‰O˜BÓˆØ�w‰w�v‰ !§'¡'¨&¡/Ò1Ð1Ñ1rf   N)rg   rh   ri   Ústaticmethodr=   rí   rö   rj   re   rñ   rø   rþ   r  r  r  r%  r,  r3  r6  r;  r>  rS  re  rq  ru  rw  r~  rƒ  rk   rf   rd   rç   rç   E  sˆ   „ Ù˜"×/Ñ/Ó0€Fàñ.ó ð.ò<ò
(ò ò(ò+CòZ2ò4 ò"ò6ò6ò6ò !ò('CòR5
òn"ò"ò ò	 ó2rf   rç   c                   ó@   — e Zd Z eej
                  «      Zed„ «       Zy)ÚTestXMLGraphMLc                 ó,   — t         j                  «        y rú   )rç   re   )rb   s    rd   re   zTestXMLGraphML.setup_class½  s   € ä×$Ñ$Õ&rf   N)	rg   rh   ri   r„  r=   rï   rö   rj   re   rk   rf   rd   r†  r†  º  s$   „ Ù˜"×.Ñ.Ó/€Fàñ'ó ñ'rf   r†  c                  ó4  — t        j                  d«       t        j                  «       } | j	                  dg d¢¬«       t        j                  «       }t        j                  t        d¬«      5  t        j                  | |«       ddd«       y# 1 sw Y   yxY w)úqTest that a detailed exception is raised when an attribute is of a type
    not supported by GraphML, e.g. a listré   r   ©r   r:   r¦   ©Úmy_list_attributeúGraphML does not support©ÚmatchN)
r’   rê   r=   rU   r@   rC   rD   r“   Ú	TypeErrorr¶   ©r   rc   s     rd   Ú1test_exception_for_unsupported_datatype_node_attrr’  Â  sl   € ô ×Ñ˜Ô%ä
�‰‹
€AØ‡J�Jˆq¢I€JÔ.Ü	�‰‹€BÜ	�‰”yÐ(BÔ	Cñ  Ü
×Ñ˜˜BÔ÷ ÷  ñ  ús   Á.BÂBc                  ó6  — t        j                  d«       t        j                  «       } | j	                  ddg d¢¬«       t        j                  «       }t        j                  t        d¬«      5  t        j                  | |«       ddd«       y# 1 sw Y   yxY w)	r‰  ré   r   r:   rŠ  r‹  r�  rŽ  N)
r’   rê   r=   rU   rA   rC   rD   r“   r�  r¶   r‘  s     rd   Ú1test_exception_for_unsupported_datatype_edge_attrr”  Î  sn   € ô ×Ñ˜Ô%ä
�‰‹
€AØ‡J�Jˆq�!¢y€JÔ1Ü	�‰‹€BÜ	�‰”yÐ(BÔ	Cñ  Ü
×Ñ˜˜BÔ÷ ÷  ñ  ús   Á/BÂBc                  ó,  — t        j                  d«       t        j                  «       } g d¢| j                  d<   t        j                  «       }t        j                  t        d¬«      5  t        j                  | |«       ddd«       y# 1 sw Y   yxY w)r‰  ré   rŠ  rŒ  r�  rŽ  N)
r’   rê   r=   rU   rI   rC   rD   r“   r�  r¶   r‘  s     rd   Ú2test_exception_for_unsupported_datatype_graph_attrr–  Ú  sk   € ô ×Ñ˜Ô%ä
�‰‹
€AÚ#,€A‡G�GÐÑ Ü	�‰‹€BÜ	�‰”yÐ(BÔ	Cñ  Ü
×Ñ˜˜BÔ÷ ÷  ñ  ús   Á*B
Â
Bc                  óÖ   — d} t        j                  | j                  d«      «      }t        j                  |«      }|j
                  d   dddœk(  sJ ‚|j
                  d   dd	dœk(  sJ ‚y
)zPTests 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   r1   ÚaaaÚbbb)r   Úbarr6   ÚcccrÝ   N)rC   rD   rE   r=   rr   rt   )r–   rc   r   s      rd   Útest_empty_attributerœ  æ  sf   € ð	€Aô 
�‰�A—H‘H˜WÓ%Ó	&€BÜ
�‰˜Ó€AØ�7‰7�3‰< 5°Ñ7Ò7Ð7Ð7Ø�7‰7�3‰< 5°Ñ4Ò4Ð4Ñ4rf   )rC   r’   Únetworkxr=   Únetworkx.readwrite.graphmlr   Únetworkx.utilsr   r   r   rm   rç   r†  r’  r”  r–  rœ  rk   rf   rd   ú<module>r      s`   ðÛ 	ã ã Ý 4ß 3÷l7ñ l7ô^	I6�kô I6ôXr2�{ô r2ôj'Ð%ô 'ò	 ò	 ò	 ó5rf   