code: def test_chain(self):
      import cudf, cugraph
  
      g = graphistry.edges(
          cudf.from_pandas(mis_edges()), "source", "target"
      )
      g2 = g.layout_cugraph("force_atlas2")
      g3 = g2.layout_cugraph("force_atlas2")
      assert "x" in g3._nodes
      assert "y" in g3._nodes
      assert len(g3._nodes.dropna()) == len(
          g.materialize_nodes()._nodes
      )
  
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_layouts obj's underlying member method code with example usage: obj.test_chain() without return types