code: def test_chain(self):
      import cudf, cugraph
  
      overrides = {}
  
      skiplist = []
  
      edges3_gdf = cudf.from_pandas(edges3_df)
  
      g = (
          graphistry.edges(edges3_gdf, "a", "b")
          .bind(edge_weight="f")
          .materialize_nodes()
      )
      for alg in [x for x in ["pagerank"]]:
          if alg not in skiplist:
              opts = overrides[alg] if alg in overrides else {}
              logger.debug('alg "%s", opts=(%s)', alg, opts)
              out1 = compute_cugraph(g, alg, **opts)
              out = compute_cugraph(out1, alg, **opts)
              assert out is not None
              if alg in node_compute_algs_to_attr:
                  assert out is not None
                  logger.debug("node outs: %s", out._nodes)
                  out_cols = (
                      node_compute_algs_to_attr[alg]
                      if isinstance(
                          node_compute_algs_to_attr[alg], list
                      )
                      else [node_compute_algs_to_attr[alg]]
                  )
                  out_cols[0] = alg
                  for col in out_cols:
                      assert col in out._nodes
                  assert len(out._nodes) == len(g._nodes)
                  # assert alg in out._nodes
                  assert len(out._nodes.columns) == len(
                      g._nodes.columns
                  ) + len(out_cols)
                  assert out._edges.shape == g._edges.shape
  
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_cugraph_compute obj's underlying member method code with example usage: obj.test_chain() without return types