code: def testSplitByOffsets3DimMatrixRagged(self):
      test_value = [
          [["hello", "hola"], ["lolz", "ha"]],
          [["bye", "mudʓ"]],
      ]
      starts = [
          [[[0, 4], [0, 2]], [[0], [0, 1]]],
          [[[0, 0], [0, 1, 2, 3, 4]]],
      ]
      ends = [
          [[[4, 5], [2, 4]], [[3], [1, 2]]],
          [[[0, 3], [1, 2, 3, 4, 5]]],
      ]
      expected = []
      row = []
      for j in range(2):
          row.append(
              [
                  _split_by_offsets(
                      test_value[0][j][k],
                      starts[0][j][k],
                      ends[0][j][k],
                  )
                  for k in range(2)
              ]
          )
      expected.append(row)
      expected.append(
          [
              [
                  _split_by_offsets(
                      test_value[1][0][k],
                      starts[1][0][k],
                      ends[1][0][k],
                  )
                  for k in range(2)
              ]
          ]
      )
      vals = self.byte_splitter.split_by_offsets(
          tf.ragged.constant(test_value),
          tf.ragged.constant(starts),
          tf.ragged.constant(ends),
      )
      self.assertAllEqual(vals, expected)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import numpy
  import tensorflow
  import tensorflow_text
  from tensorflow.lite.python import interpreter
  from tensorflow.python.framework import test_util
  from tensorflow.python.platform import test
label_desc: Use image node_id 19 for calling the ByteSplitterTest obj's underlying member method code with example usage: obj.testSplitByOffsets3DimMatrixRagged() without return types