code: def test_merge_existing_edges(self):
      ig = igraph.Graph(edges)
      ig.es["name"] = names
      ig.es["idx"] = ["aa", "bb", "cc", "dd", "ee"]
      g = graphistry.nodes(
          pd.DataFrame({"i": nodes, "v1": [f"1_{x}" for x in names_v]}),
          "i",
      ).edges(
          pd.DataFrame(
              {
                  "s": [x[0] for x in edges],
                  "d": [x[1] for x in edges],
                  "i": ["aaa", "bbb", "ccc", "ddd", "eee"],
              }
          ),
          "s",
          "d",
          "i",
      )
      g2 = g.from_igraph(ig)
      assert len(g._nodes) == len(g2._nodes)
      assert len(g._edges) == len(g2._edges)
      assert sorted(g2._nodes.columns) == sorted(g._nodes.columns)
      assert sorted(g2._edges.columns) == sorted(
          ["s", "d", "i", "idx", "name"]
      )
  
imports: import pyarrow
  import graphistry, logging, pandas, pytest, warnings
  from graphistry.tests.common import NoAuthTestCase
  from graphistry.constants import SRC, DST, NODE
  from graphistry.plugins.igraph import SRC_IGRAPH, DST_IGRAPH, compute_algs, compute_igraph, layout_algs, layout_igraph
label_desc: Use image node_id 11 for calling the Test_from_igraph obj's underlying member method code with example usage: obj.test_merge_existing_edges() without return types