code: def testDetokenizeFailsForSparseVocab(self):
      vocab = ["a", "##b", "##c"]
      ids = [0, 10, 20]
      init = lookup_ops.KeyValueTensorInitializer(
          vocab, ids, key_dtype=dtypes.string, value_dtype=dtypes.int64
      )
      table = lookup_ops.StaticVocabularyTableV1(
          init, num_oov_buckets=1, lookup_key_dtype=dtypes.string
      )
      self.evaluate(table.initializer)
  
      tokenizer = WordpieceTokenizer(table)
      words = ragged_factory_ops.constant([["abb", "abc"], ["abcbc"]])
      subwords_ids = tokenizer.tokenize(words)
  
      with self.assertRaisesRegex(
          errors_impl.InvalidArgumentError,
          "detokenize.*?dense on the interval",
      ):
          result = tokenizer.detokenize(subwords_ids)
          self.evaluate(result)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from absl.testing import parameterized
  from tensorflow.python.compat import compat
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors_impl
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import lookup_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops.ragged import ragged_factory_ops
  from tensorflow.python.platform import test
  from tensorflow_text.python.ops.wordpiece_tokenizer import WordpieceTokenizer
label_desc: Use image node_id 7 for calling the WordpieceOpTest obj's underlying member method code with example usage: obj.testDetokenizeFailsForSparseVocab() without return types