code: def testMatrixStrings(self, dtype, unit):
      test_string = {
          "BYTE": [
              [b"ten", b"eleven", b"twelve"],
              [b"thirteen", b"fourteen", b"fifteen"],
              [b"sixteen", b"seventeen", b"eighteen"],
          ],
          "UTF8_CHAR": [
              [
                  x.encode("utf-8")
                  for x in [
                      "\U0001d229\U0001d227n",
                      "\xc6\u053c\u025bv\u025bn",
                      "tw\u0c1dlv\u025b",
                  ]
              ],
              [
                  x.encode("utf-8")
                  for x in [
                      "He\xc3\xc3o",
                      "W\U0001f604rld",
                      "d\xfcd\xea",
                  ]
              ],
          ],
      }[unit]
      position = np.array(1, dtype)
      length = np.array(4, dtype)
      expected_value = {
          "BYTE": [
              [b"en", b"leve", b"welv"],
              [b"hirt", b"ourt", b"ifte"],
              [b"ixte", b"even", b"ight"],
          ],
          "UTF8_CHAR": [
              [
                  x.encode("utf-8")
                  for x in [
                      "\U0001d227n",
                      "\u053c\u025bv\u025b",
                      "w\u0c1dlv",
                  ]
              ],
              [
                  x.encode("utf-8")
                  for x in ["e\xc3\xc3o", "\U0001f604rld", "\xfcd\xea"]
              ],
          ],
      }[unit]
      substr_op = string_ops.substr(
          test_string, position, length, unit=unit
      )
      with self.cached_session():
          substr = self.evaluate(substr_op)
          self.assertAllEqual(substr, expected_value)
  
      position = np.array(-3, dtype)
      length = np.array(2, dtype)
      expected_value = {
          "BYTE": [
              [b"te", b"ve", b"lv"],
              [b"ee", b"ee", b"ee"],
              [b"ee", b"ee", b"ee"],
          ],
          "UTF8_CHAR": [
              [
                  x.encode("utf-8")
                  for x in ["\U0001d229\U0001d227", "v\u025b", "lv"]
              ],
              [x.encode("utf-8") for x in ["\xc3\xc3", "rl", "\xfcd"]],
          ],
      }[unit]
      substr_op = string_ops.substr(
          test_string, position, length, unit=unit
      )
      with self.cached_session():
          substr = self.evaluate(substr_op)
          self.assertAllEqual(substr, expected_value)
  
imports: from absl.testing import parameterized
  import numpy
  from tensorflow.python.framework import errors_impl
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import string_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 4 for calling the SubstrOpTest obj's underlying member method code with example usage: obj.testMatrixStrings(dtype, unit) without return types