code: def test_enrich_with_stat_direct(self):
      import cudf, cugraph
  
      g = graphistry.edges(
          pd.DataFrame(
              {"s": [x[0] for x in edges], "d": [x[1] for x in edges]}
          ),
          "s",
          "d",
      ).materialize_nodes()
      pagerank = cugraph.pagerank(g.to_cugraph())["pagerank"]
      logger.debug("pagerank: %s", pagerank)
      g2 = g.nodes(
          cudf.from_pandas(g._nodes).assign(
              # TODO this seems unsafe: no guarantee ._nodes order is ig vertices order?
              pagerank=pagerank
          )
      )
      logger.debug("g2 nodes: %s", g2._nodes)
      logger.debug("g2 edges: %s", g2._edges)
      assert g2._edges.shape == g2._edges.shape
      assert len(g2._nodes) == len(nodes)
      assert sorted(g2._nodes.columns) == sorted([g2._node, "pagerank"])
  
imports: from functools import lru_cache
  import graphistry, logging, os, pandas, pytest
  from graphistry.tests.common import NoAuthTestCase
  from graphistry.constants import SRC, DST, NODE
  from graphistry.plugins.cugraph import SRC_CUGRAPH, DST_CUGRAPH, NODE_CUGRAPH, from_cugraph, to_cugraph, compute_cugraph, layout_cugraph, compute_algs, node_compute_algs_to_attr, layout_algs
label_desc: Use image node_id 2 for calling the Test_curaph_usage obj's underlying member method code with example usage: obj.test_enrich_with_stat_direct() without return types