code: def test_soft_round_values_and_gradients_are_finite(self, alpha):
      x = tf.linspace(
          0.0, 1.0, 11
      )  # covers exact integers and half-integers
      with tf.GradientTape() as tape:
          tape.watch(x)
          y = round_ops.soft_round(x, alpha=alpha)
      dy = tape.gradient(y, x)
      self.assertAllEqual(
          tf.math.is_finite(y), tf.ones(x.shape, dtype=bool)
      )
      self.assertAllEqual(
          tf.math.is_finite(dy), tf.ones(x.shape, dtype=bool)
      )
  
file_path: compression/tensorflow_compression/python/ops/round_ops_test.py
imports: from absl.testing import parameterized
  import tensorflow
  from tensorflow_compression.python.ops import round_ops
label_desc: Use image node_id 7 for calling the SoftRoundTest obj's underlying member method code with example usage: obj.test_soft_round_values_and_gradients_are_finite(alpha) without return types