code: def testSumStates(self):
      idx = [
          [0, 1, 0, 1],
          [0, 0, 0, 1],
      ]
      states = math_ops.log(
          [
              [[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0]],
              [[0.1, 0.2, 0.3, 0.4], [0.5, 0.6, 0.7, 0.8]],
          ]
      )
      sum_of_states = math_ops.exp(ctc_ops._sum_states(idx, states))
      self.assertAllClose(
          [
              [[4.0, 6.0, 0.0, 0.0], [18.0, 8.0, 0.0, 0.0]],
              [[0.4, 0.6, 0.0, 0.0], [1.8, 0.8, 0.0, 0.0]],
          ],
          sum_of_states,
      )
  
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 15 for calling the CTCLossTestV2 obj's underlying member method code with example usage: obj.testSumStates() without return types