code: def test_sgc_conv(g, idtype, out_dim):
      ctx = F.ctx()
      g = g.astype(idtype).to(ctx)
      # not cached
      sgc = nn.SGConv(5, out_dim, 3)
      feat = F.randn((g.num_nodes(), 5))
  
      h = sgc(g, feat)
      assert h.shape[-1] == out_dim
  
      # cached
      sgc = nn.SGConv(5, out_dim, 3, True)
      h_0 = sgc(g, feat)
      h_1 = sgc(g, feat + 1)
      assert F.allclose(h_0, h_1)
      assert h_0.shape[-1] == out_dim
  
imports: from copy import deepcopy
  import backend
  import dgl
  import dgl.function
  import dgl.nn.tensorflow
  import networkx
  import numpy
  import pytest
  import scipy
  import tensorflow
  from tensorflow.keras import layers
  from utils import parametrize_idtype
  from utils.graph_cases import get_cases, random_bipartite, random_dglgraph, random_graph
label_desc: Use image node_id 13 for calling a global function with example usage: test_sgc_conv(g, idtype, out_dim) without return types