code: def test_set_splits_normal(self):
      info = dataset_info.DatasetInfo(builder=self._builder)
      split_info1 = splits_lib.SplitInfo(
          name="train", shard_lengths=[1, 2], num_bytes=0
      )
      split_info2 = splits_lib.SplitInfo(
          name="test", shard_lengths=[1], num_bytes=0
      )
      split_dict = splits_lib.SplitDict(
          split_infos=[split_info1, split_info2]
      )
      info.set_splits(split_dict)
      self.assertEqual(str(info.splits), str(split_dict))
      self.assertEqual(
          str(info.as_proto.splits),
          str([split_info1.to_proto(), split_info2.to_proto()]),
      )
  
imports: import json
  import os
  import pathlib
  import tempfile
  import time
  from typing import Union
  import numpy
  import pytest
  import tensorflow
  from tensorflow_datasets import testing
  from tensorflow_datasets.core import dataset_builder
  from tensorflow_datasets.core import dataset_info
  from tensorflow_datasets.core import features
  from tensorflow_datasets.core import file_adapters
  from tensorflow_datasets.core import naming
  from tensorflow_datasets.core import read_only_builder
  from tensorflow_datasets.core import splits
  from tensorflow_datasets.core import utils
  from tensorflow_datasets.core.proto import dataset_info_pb2
  from tensorflow_datasets.core.proto import feature_pb2
  from tensorflow_datasets.image_classification import mnist
  from tensorflow_datasets.testing.dummy_config_based_datasets.dummy_ds_1 import dummy_ds_1_dataset_builder
  from google.protobuf import text_format
label_desc: Use image node_id 15 for calling the DatasetInfoTest obj's underlying member method code with example usage: obj.test_set_splits_normal() without return types