code: def test_tsagcn():
      """
      Testing 2s-AGCN unit
      """
      batch_size = 10
      sequence_length = 5
  
      number_of_nodes = 300
      in_channels = 100
      edge_per_node = 15
      out_channels = 10
      device = torch.device(
          "cuda" if torch.cuda.is_available() else "cpu"
      )
      batch, _, edge_index, edge_weight = create_mock_batch(
          batch_size,
          sequence_length,
          number_of_nodes,
          edge_per_node,
          in_channels,
          out_channels,
      )
      # (bs, seq, nodes, f_in) -> (bs, f_in, seq, nodes)
      # also be sure to pass in a contiguous tensor (the created in create_mock_batch() is not!)
      batch = batch.permute(0, 3, 1, 2).contiguous()
  
      stride = 2
      aagcn_adaptive = AAGCN(
          num_nodes=number_of_nodes,
          edge_index=edge_index,
          in_channels=in_channels,
          out_channels=out_channels,
          stride=stride,
          adaptive=True,
      ).to(device)
      aagcn_non_adaptive = AAGCN(
          num_nodes=number_of_nodes,
          edge_index=edge_index,
          in_channels=in_channels,
          out_channels=out_channels,
          stride=stride,
          adaptive=False,
      ).to(device)
      A = aagcn_adaptive.A
  
      x_mock = batch.to(device)
      H_adaptive = aagcn_adaptive(x_mock)
      H_non_adaptive = aagcn_non_adaptive(x_mock)
  
      assert H_adaptive.shape == (
          batch_size,
          out_channels,
          math.ceil(sequence_length / stride),
          number_of_nodes,
      )
      assert H_non_adaptive.shape == (
          batch_size,
          out_channels,
          math.ceil(sequence_length / stride),
          number_of_nodes,
      )
      assert A.shape == (3, number_of_nodes, number_of_nodes)
  
imports: import torch
  import math
  import numpy
  import networkx
  from torch_geometric.data import Data
  from torch_geometric.utils import barabasi_albert_graph
  from torch_geometric.transforms import LaplacianLambdaMax
  from torch_geometric_temporal.nn.attention import TemporalConv, STConv, ASTGCN, MSTGCN, MTGNN, ChebConvAttention, AAGCN, GraphAAGCN, DNNTSP
  from torch_geometric_temporal.nn.attention import GMAN, SpatioTemporalAttention, SpatioTemporalEmbedding
label_desc: Use image node_id 12 for calling a global function with example usage: test_tsagcn() without return types