code: def test_train_test_split_dynamic_hetero_graph_temporal_signal():
      snapshot_count = 250
      n_count = 100
      feature_count = 32
  
      (
          edge_index_dicts,
          edge_weight_dicts,
          feature_dicts,
          target_dicts,
          additional_feature_dicts,
      ) = generate_heterogeneous_signal(
          snapshot_count,
          n_count,
          feature_count,
          "optional1",
          "optional2",
      )
  
      dataset = DynamicHeteroGraphTemporalSignal(
          edge_index_dicts,
          edge_weight_dicts,
          feature_dicts,
          target_dicts,
          **additional_feature_dicts,
      )
  
      train_dataset, test_dataset = temporal_signal_split(dataset, 0.8)
  
      for epoch in range(2):
          for snapshot in test_dataset:
              assert len(snapshot.node_types) == 2
              assert snapshot.node_types[0] == "author"
              assert snapshot.node_types[1] == "paper"
              assert snapshot.node_stores[0]["x"].shape == (
                  n_count,
                  feature_count,
              )
              assert snapshot.node_stores[1]["x"].shape == (
                  n_count,
                  feature_count,
              )
              assert snapshot.node_stores[0]["y"].shape == (n_count,)
              assert snapshot.node_stores[1]["y"].shape == (n_count,)
              assert len(snapshot.edge_types) == 1
              assert snapshot.edge_types[0] == (
                  "author",
                  "writes",
                  "paper",
              )
              assert snapshot.edge_stores[0].edge_index.shape[0] == 2
              assert (
                  snapshot.edge_stores[0].edge_index.shape[1]
                  == snapshot.edge_stores[0].edge_attr.shape[0]
              )
              assert snapshot.node_stores[1]["optional1"].shape == (
                  n_count,
                  feature_count,
              )
              assert snapshot.node_stores[1]["optional2"].shape == (
                  n_count,
                  feature_count,
              )
  
      for epoch in range(2):
          for snapshot in train_dataset:
              assert len(snapshot.node_types) == 2
              assert snapshot.node_types[0] == "author"
              assert snapshot.node_types[1] == "paper"
              assert snapshot.node_stores[0]["x"].shape == (
                  n_count,
                  feature_count,
              )
              assert snapshot.node_stores[1]["x"].shape == (
                  n_count,
                  feature_count,
              )
              assert snapshot.node_stores[0]["y"].shape == (n_count,)
              assert snapshot.node_stores[1]["y"].shape == (n_count,)
              assert len(snapshot.edge_types) == 1
              assert snapshot.edge_types[0] == (
                  "author",
                  "writes",
                  "paper",
              )
              assert snapshot.edge_stores[0].edge_index.shape[0] == 2
              assert (
                  snapshot.edge_stores[0].edge_index.shape[1]
                  == snapshot.edge_stores[0].edge_attr.shape[0]
              )
              assert snapshot.node_stores[1]["optional1"].shape == (
                  n_count,
                  feature_count,
              )
              assert snapshot.node_stores[1]["optional2"].shape == (
                  n_count,
                  feature_count,
              )
  
imports: import numpy
  import networkx
  from torch_geometric_temporal.signal import temporal_signal_split
  from torch_geometric_temporal.signal import StaticGraphTemporalSignal
  from torch_geometric_temporal.signal import DynamicGraphTemporalSignal
  from torch_geometric_temporal.signal import DynamicGraphStaticSignal
  from torch_geometric_temporal.signal import StaticHeteroGraphTemporalSignal
  from torch_geometric_temporal.signal import DynamicHeteroGraphTemporalSignal
  from torch_geometric_temporal.signal import DynamicHeteroGraphStaticSignal
  from torch_geometric_temporal.dataset import METRLADatasetLoader, PemsBayDatasetLoader
  from torch_geometric_temporal.dataset import ChickenpoxDatasetLoader, PedalMeDatasetLoader, WikiMathsDatasetLoader, EnglandCovidDatasetLoader
  from torch_geometric_temporal.dataset import TwitterTennisDatasetLoader, MontevideoBusDatasetLoader, MTMDatasetLoader
  from torch_geometric_temporal.dataset import WindmillOutputLargeDatasetLoader, WindmillOutputMediumDatasetLoader, WindmillOutputSmallDatasetLoader
label_desc: Use image node_id 44 for calling a global function with example usage: test_train_test_split_dynamic_hetero_graph_temporal_signal() without return types