code: def test_agcrn_layer():
      """
      Testing the AGCRN Layer.
      """
      number_of_nodes = 100
      edge_per_node = 10
      in_channels = 64
      out_channels = 16
      embedding_dimensions = 32
      K = 2
      device = torch.device(
          "cuda" if torch.cuda.is_available() else "cpu"
      )
      X, edge_index = create_mock_data(
          number_of_nodes, edge_per_node, in_channels
      )
      X = X.view(-1, number_of_nodes, in_channels)
      X = X.to(device)
      E = torch.nn.Parameter(
          torch.randn(number_of_nodes, embedding_dimensions),
          requires_grad=True,
      ).to(device)
  
      layer = AGCRN(
          number_of_nodes=number_of_nodes,
          in_channels=in_channels,
          out_channels=out_channels,
          K=K,
          embedding_dimensions=embedding_dimensions,
      ).to(device)
  
      H = layer(X, E)
  
      assert H.shape == (1, number_of_nodes, out_channels)
  
      H = layer(X, E, H)
  
      assert H.shape == (1, number_of_nodes, out_channels)
  
      layer = AGCRN(
          number_of_nodes=number_of_nodes,
          in_channels=in_channels,
          out_channels=out_channels,
          K=3,
          embedding_dimensions=embedding_dimensions,
      ).to(device)
  
      H = layer(X, E)
  
      assert H.shape == (1, number_of_nodes, out_channels)
  
      H = layer(X, E, H)
  
      assert H.shape == (1, number_of_nodes, out_channels)
  
imports: import torch
  import numpy
  import networkx
  from torch_geometric_temporal.nn.recurrent import GConvLSTM, GConvGRU, DCRNN, AGCRN
  from torch_geometric_temporal.nn.recurrent import GCLSTM, LRGCN, DyGrEncoder
  from torch_geometric_temporal.nn.recurrent import EvolveGCNH, EvolveGCNO, TGCN, A3TGCN, A3TGCN2, MPNNLSTM
label_desc: Use image node_id 14 for calling a global function with example usage: test_agcrn_layer() without return types