code: def test_minimal_nodes_attributed_sparse(self):
      ig = igraph.Graph(edges_sparse)
      ig.vs["name"] = names_dense_v
      g = graphistry.from_igraph(ig)
      assert g._node is not None and g._nodes is not None
      assert g._node == NODE
      assert len(g._nodes) == max(nodes_sparse) + 1
      assert sorted(g._nodes.columns) == sorted([NODE])
      assert len(g._nodes) == len(names_dense_v)
      assert g._nodes[g._node].sort_values().to_list() == sorted(
          names_dense_v
      )
      assert len(g._edges) == len(edges_sparse)
      assert g._source is not None and g._destination is not None
      assert len(g._edges[g._source].dropna()) == len(edges_sparse)
      assert len(g._edges[g._destination].dropna()) == len(edges_sparse)
  
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 8 for calling the Test_from_igraph obj's underlying member method code with example usage: obj.test_minimal_nodes_attributed_sparse() without return types