code: def test_yfiles_extension(self):
      data = """<?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>
  """
      fh = io.BytesIO(data.encode("UTF-8"))
      G = nx.read_graphml(fh, force_multigraph=True)
      assert list(G.edges()) == [("n0", "n1")]
      assert G.has_edge("n0", "n1", key="e0")
      assert G.nodes["n0"]["label"] == "1"
      assert G.nodes["n1"]["label"] == "2"
      assert G.nodes["n2"]["label"] == "3"
      assert G.nodes["n0"]["shape_type"] == "rectangle"
      assert G.nodes["n1"]["shape_type"] == "rectangle"
      assert (
          G.nodes["n2"]["shape_type"]
          == "com.yworks.flowchart.terminator"
      )
      assert G.nodes["n2"]["description"] == "description\nline1\nline2"
      fh.seek(0)
      G = nx.read_graphml(fh)
      assert list(G.edges()) == [("n0", "n1")]
      assert G["n0"]["n1"]["id"] == "e0"
      assert G.nodes["n0"]["label"] == "1"
      assert G.nodes["n1"]["label"] == "2"
      assert G.nodes["n2"]["label"] == "3"
      assert G.nodes["n0"]["shape_type"] == "rectangle"
      assert G.nodes["n1"]["shape_type"] == "rectangle"
      assert (
          G.nodes["n2"]["shape_type"]
          == "com.yworks.flowchart.terminator"
      )
      assert G.nodes["n2"]["description"] == "description\nline1\nline2"
  
      H = nx.parse_graphml(data, force_multigraph=True)
      assert list(H.edges()) == [("n0", "n1")]
      assert H.has_edge("n0", "n1", key="e0")
      assert H.nodes["n0"]["label"] == "1"
      assert H.nodes["n1"]["label"] == "2"
      assert H.nodes["n2"]["label"] == "3"
  
      H = nx.parse_graphml(data)
      assert list(H.edges()) == [("n0", "n1")]
      assert H["n0"]["n1"]["id"] == "e0"
      assert H.nodes["n0"]["label"] == "1"
      assert H.nodes["n1"]["label"] == "2"
      assert H.nodes["n2"]["label"] == "3"
  
imports: import io
  import pytest
  import networkx
  from networkx.readwrite.graphml import GraphMLWriter
  from networkx.utils import edges_equal, nodes_equal
label_desc: Use image node_id 14 for calling the TestReadGraphML obj's underlying member method code with example usage: obj.test_yfiles_extension() without return types