code: def testElementWisePosLen(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",
                  ]
              ],
              [
                  x.encode("utf-8")
                  for x in [
                      "sixt\xea\xean",
                      "se\U00010299enteen",
                      "ei\U0001e920h\x86een",
                  ]
              ],
          ],
      }[unit]
      position = np.array([[1, -4, 3], [1, 2, -4], [-5, 2, 3]], dtype)
      length = np.array([[2, 2, 4], [4, 3, 2], [5, 5, 5]], dtype)
      expected_value = {
          "BYTE": [
              [b"en", b"ev", b"lve"],
              [b"hirt", b"urt", b"te"],
              [b"xteen", b"vente", b"hteen"],
          ],
          "UTF8_CHAR": [
              [
                  x.encode("utf-8")
                  for x in ["\U0001d227n", "\u025bv", "lv\u025b"]
              ],
              [
                  x.encode("utf-8")
                  for x in ["e\xc3\xc3o", "rld", "d\xfc"]
              ],
              [
                  x.encode("utf-8")
                  for x in ["xt\xea\xean", "\U00010299ente", "h\x86een"]
              ],
          ],
      }[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 5 for calling the SubstrOpTest obj's underlying member method code with example usage: obj.testElementWisePosLen(dtype, unit) without return types