code: def test_OnDiskDataset_TVTSet_ItemSet_id_label():
      """Test TVTSet which returns ItemSet with IDs and labels."""
      with tempfile.TemporaryDirectory() as test_dir:
          train_ids = np.arange(1000)
          train_ids_path = os.path.join(test_dir, "train_ids.npy")
          np.save(train_ids_path, train_ids)
          train_labels = np.random.randint(0, 10, size=1000)
          train_labels_path = os.path.join(test_dir, "train_labels.npy")
          np.save(train_labels_path, train_labels)
  
          validation_ids = np.arange(1000, 2000)
          validation_ids_path = os.path.join(
              test_dir, "validation_ids.npy"
          )
          np.save(validation_ids_path, validation_ids)
          validation_labels = np.random.randint(0, 10, size=1000)
          validation_labels_path = os.path.join(
              test_dir, "validation_labels.npy"
          )
          np.save(validation_labels_path, validation_labels)
  
          test_ids = np.arange(2000, 3000)
          test_ids_path = os.path.join(test_dir, "test_ids.npy")
          np.save(test_ids_path, test_ids)
          test_labels = np.random.randint(0, 10, size=1000)
          test_labels_path = os.path.join(test_dir, "test_labels.npy")
          np.save(test_labels_path, test_labels)
  
          # Case 1:
          #   all TVT sets are specified.
          #   ``type`` is not specified or specified as ``null``.
          #   ``in_memory`` could be ``true`` and ``false``.
          yaml_content = f"""
              tasks:
                - name: node_classification
                  num_classes: 10
                  train_set:
                    - type: null
                      data:
                        - name: seed_nodes
                          format: numpy
                          in_memory: true
                          path: {train_ids_path}
                        - name: labels
                          format: numpy
                          in_memory: true
                          path: {train_labels_path}
                  validation_set:
                    - data:
                        - name: seed_nodes
                          format: numpy
                          in_memory: true
                          path: {validation_ids_path}
                        - name: labels
                          format: numpy
                          in_memory: true
                          path: {validation_labels_path}
                  test_set:
                    - type: null
                      data:
                        - name: seed_nodes
                          format: numpy
                          in_memory: true
                          path: {test_ids_path}
                        - name: labels
                          format: numpy
                          in_memory: true
                          path: {test_labels_path}
          """
          dataset = write_yaml_and_load_dataset(yaml_content, test_dir)
  
          # Verify tasks.
          assert len(dataset.tasks) == 1
          assert (
              dataset.tasks[0].metadata["name"] == "node_classification"
          )
          assert dataset.tasks[0].metadata["num_classes"] == 10
  
          # Verify train set.
          train_set = dataset.tasks[0].train_set
          assert len(train_set) == 1000
          assert isinstance(train_set, gb.ItemSet)
          for i, (id, label) in enumerate(train_set):
              assert id == train_ids[i]
              assert label == train_labels[i]
          assert train_set.names == ("seed_nodes", "labels")
          train_set = None
  
          # Verify validation set.
          validation_set = dataset.tasks[0].validation_set
          assert len(validation_set) == 1000
          assert isinstance(validation_set, gb.ItemSet)
          for i, (id, label) in enumerate(validation_set):
              assert id == validation_ids[i]
              assert label == validation_labels[i]
          assert validation_set.names == ("seed_nodes", "labels")
          validation_set = None
  
          # Verify test set.
          test_set = dataset.tasks[0].test_set
          assert len(test_set) == 1000
          assert isinstance(test_set, gb.ItemSet)
          for i, (id, label) in enumerate(test_set):
              assert id == test_ids[i]
              assert label == test_labels[i]
          assert test_set.names == ("seed_nodes", "labels")
          test_set = None
          dataset = None
  
          # Case 2: Some TVT sets are None.
          yaml_content = f"""
              tasks:
                - name: node_classification
                  train_set:
                    - type: null
                      data:
                        - format: numpy
                          path: {train_ids_path}
          """
          dataset = write_yaml_and_load_dataset(yaml_content, test_dir)
          assert dataset.tasks[0].train_set is not None
          assert dataset.tasks[0].validation_set is None
          assert dataset.tasks[0].test_set is None
          dataset = None
  
imports: import os
  import pickle
  import random
  import re
  import tempfile
  import unittest
  import warnings
  import numpy
  import pandas
  import pydantic
  import pytest
  import torch
  import yaml
  from dgl import graphbolt
  from dgl.base import DGLWarning
  from ..None import gb_test_utils
label_desc: Use image node_id 8 for calling a global function with example usage: test_OnDiskDataset_TVTSet_ItemSet_id_label() without return types