code: def testStringJoinReductionAxisZero(self):
      test_data = constant_op.constant([b"a", b"b", b"c"])
      op = ngrams_op.ngrams(
          test_data,
          width=2,
          axis=-1,  # The -1 axis is the zero axis here.
          reduction_type=ngrams_op.Reduction.STRING_JOIN,
          string_separator=b"|",
      )
      expected_values = [b"a|b", b"b|c"]
  
      self.assertAllEqual(expected_values, op)
  
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 constant_op
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops.ragged import ragged_factory_ops
  from tensorflow.python.platform import test
  from tensorflow_text.core.pybinds import tflite_registrar
  from tensorflow_text.python.ops import ngrams_op
label_desc: Use image node_id 7 for calling the NgramsOpTest obj's underlying member method code with example usage: obj.testStringJoinReductionAxisZero() without return types