code: def test_sit_multi_dataset_one_batch_per_set(self):
      split_mapping = [0, 1, 2, 0, 1, 2, 3, 4, 5, 6]
      mnist_train = MNIST(
          root=default_dataset_location("mnist"),
          train=True,
          download=True,
      )
      mnist_test = MNIST(
          root=default_dataset_location("mnist"),
          train=False,
          download=True,
      )
  
      train_part1 = make_nc_transformation_subset(
          mnist_train, None, None, range(3)
      )
      train_part2 = make_nc_transformation_subset(
          mnist_train, None, None, range(3, 10)
      )
      train_part2 = _taskaware_classification_subset(
          train_part2, class_mapping=split_mapping
      )
  
      test_part1 = make_nc_transformation_subset(
          mnist_test, None, None, range(3)
      )
      test_part2 = make_nc_transformation_subset(
          mnist_test, None, None, range(3, 10)
      )
      test_part2 = _taskaware_classification_subset(
          test_part2, class_mapping=split_mapping
      )
      my_nc_benchmark = nc_benchmark(
          [train_part1, train_part2],
          [test_part1, test_part2],
          2,
          task_labels=False,
          shuffle=True,
          seed=1234,
          one_dataset_per_exp=True,
      )
  
      self.assertEqual(2, my_nc_benchmark.n_experiences)
      self.assertEqual(10, my_nc_benchmark.n_classes)
  
      all_classes = set()
      for batch_id in range(2):
          all_classes.update(
              my_nc_benchmark.classes_in_experience["train"][batch_id]
          )
  
      self.assertEqual(10, len(all_classes))
  
      self.assertTrue(
          (
              my_nc_benchmark.classes_in_experience["train"][0]
              == {0, 1, 2}
              and my_nc_benchmark.classes_in_experience["train"][1]
              == set(range(3, 10))
          )
          or (
              my_nc_benchmark.classes_in_experience["train"][0]
              == set(range(3, 10))
              and my_nc_benchmark.classes_in_experience["train"][1]
              == {0, 1, 2}
          )
      )
  
imports: import random
  import unittest
  from PIL.Image import Image
  from torch import Tensor
  from torchvision.datasets import MNIST
  from torchvision.transforms import ToTensor
  from avalanche.benchmarks import nc_benchmark, ClassificationStream
  from avalanche.benchmarks.datasets import default_dataset_location
  from avalanche.benchmarks.scenarios.deprecated.new_classes import NCExperience
  from avalanche.benchmarks.scenarios.deprecated.new_classes.nc_utils import make_nc_transformation_subset
  from avalanche.benchmarks.utils import _taskaware_classification_subset, _make_taskaware_classification_dataset
  from tests.unit_tests_utils import DummyImageDataset
label_desc: Use image node_id 8 for calling the SITTests obj's underlying member method code with example usage: obj.test_sit_multi_dataset_one_batch_per_set() without return types