code: def testStateToOlabelUniqueSinglePath(self):
      labels = [
          [3, 4, 3],
          [1, 0, 0],
      ]
      num_labels = 8
  
      # 3 frames, 2 batch, 8 states (4 label, 4 blank).
      #
      # There is only single valid path for each sequence because the frame
      # lengths and the label lengths are the same.
      states = [
          [
              [0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
              [0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
          ],
          [
              [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0],
              [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
          ],
          [
              [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0],
              [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
          ],
      ]
      labels = ops.convert_to_tensor(labels)
      states = math_ops.log(states)
      olabel = ctc_ops._state_to_olabel_unique(
          labels, num_labels, states, ctc_ops.ctc_unique_labels(labels)
      )
      olabel = math_ops.exp(olabel)
      blank = olabel[:, :, 0]
  
      self.assertAllClose(blank, [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]])
      self.assertAllClose(
          olabel[:, :, 1:],
          [
              [
                  [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0],
                  [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
              ],
              [
                  [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0],
                  [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
              ],
              [
                  [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0],
                  [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
              ],
          ],
      )
  
imports: from absl.testing import parameterized
  import numpy
  from tensorflow.python.eager import backprop
  from tensorflow.python.eager import context
  from tensorflow.python.eager import def_function
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors_impl
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import random_seed
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.framework import tensor_spec
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import ctc_ops
  from tensorflow.python.ops import gradients_impl
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import random_ops
  from tensorflow.python.ops import sparse_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 18 for calling the CTCLossTestV2 obj's underlying member method code with example usage: obj.testStateToOlabelUniqueSinglePath() without return types