code: def test_child_splitter(self):
      proto = test_message_pb2.RepeatedRepeatedString(
          rs=[
              test_message_pb2.RepeatedString(strings=["a", "b", "c"]),
              test_message_pb2.RepeatedString(strings=["d", "e"]),
          ]
      )
      splitter = NoOpSplitter(proto)
  
      self.assertLen(splitter.split()[0], 1)
      splitter.add_chunk("", [])
      self.assertLen(splitter.split()[0], 2)
  
      child = RepeatedStringSplitter(
          proto.rs[0],
          parent_splitter=splitter,
          fields_in_parent=["rs", 0],
      )
      child.build_chunks()
  
      self.assertLen(splitter.split()[0], 5)  # Adds 3 chunks.
  
      RepeatedStringSplitter(
          proto.rs[1],
          parent_splitter=splitter,
          fields_in_parent=["rs", 1],
      ).build_chunks()
  
      self.assertLen(splitter.split()[0], 7)  # Adds 2 chunks.
  
      with self.assertRaisesRegex(
          ValueError, " `split` method should not be called directly"
      ):
          child.split()
      path = os.path.join(self.create_tempdir(), "na-split")
      with self.assertRaisesRegex(
          ValueError, " `write` method should not be called directly"
      ):
          child.write(path)
  
imports: import os
  import random
  import string
  import riegeli
  from tensorflow.python.platform import test
  from tensorflow.tools.proto_splitter import chunk_pb2
  from tensorflow.tools.proto_splitter import split
  from tensorflow.tools.proto_splitter.testdata import test_message_pb2
label_desc: Use image node_id 4 for calling the SplitRepeatedStringTest obj's underlying member method code with example usage: obj.test_child_splitter() without return types