code: def test_graph_norm(self):
      graph_list = []
  
      edges1 = [(0, 1), (1, 2)]
      num_nodes1 = 3
      g1 = pgl.Graph(edges=edges1, num_nodes=num_nodes1)
      graph_list.append(g1)
  
      edges2 = [(0, 2), (0, 3), (1, 2)]
      num_nodes2 = 4
      g2 = pgl.Graph(edges=edges2, num_nodes=num_nodes2)
      graph_list.append(g2)
  
      multi_graph = pgl.Graph.disjoint(graph_list)
      multi_graph.tensor()
  
      feat = np.repeat(
          np.arange(0, 7).reshape(-1, 1), 3, axis=1
      ).astype("float32")
      tensor_feat = paddle.to_tensor(feat, dtype="float32")
  
      feat[0:3] = feat[0:3] / np.sqrt(3)
      feat[3:] = feat[3:] / np.sqrt(4)
  
      norm_feat = F.graph_norm(multi_graph, tensor_feat)
      self.assertEqual(feat.tolist(), norm_feat.numpy().tolist())
  
      gn_layer = nn.GraphNorm()
      norm_feat = gn_layer(multi_graph, tensor_feat)
  
      self.assertEqual(feat.tolist(), norm_feat.numpy().tolist())
  
file_path: PGL/tests/test_graph_op.py
imports: import unittest
  import numpy
  import paddle
  import pgl
  import pgl.nn
  import pgl.nn.functional
label_desc: Use image node_id 1 for calling the GraphOpTest obj's underlying member method code with example usage: obj.test_graph_norm() without return types