code: def testAssertOnNoCallOfComputeGradients(self, cls):
      opt = cls(
          l2_norm_clip=4.0,
          noise_multiplier=2.0,
          num_microbatches=1,
          learning_rate=2.0,
      )
  
      with self.assertRaises(AssertionError):
          grads_and_vars = tf.Variable([0.0])
          opt.apply_gradients(grads_and_vars)
  
      # Expect no call exception if compute_gradients is called.
      var0 = tf.Variable([0.0])
      data0 = tf.Variable([[0.0]])
      grads_and_vars = opt.compute_gradients(
          self._loss(data0, var0), [var0]
      )
      opt.apply_gradients(grads_and_vars)
  
imports: import unittest
  from absl.testing import parameterized
  import numpy
  import tensorflow
  from tensorflow import estimator
  from tensorflow.compat.v1 import estimator
  from tensorflow_privacy.privacy.optimizers import dp_optimizer_vectorized
  from tensorflow_privacy.privacy.optimizers.dp_optimizer_vectorized import VectorizedDPAdagrad
  from tensorflow_privacy.privacy.optimizers.dp_optimizer_vectorized import VectorizedDPAdam
  from tensorflow_privacy.privacy.optimizers.dp_optimizer_vectorized import VectorizedDPSGD
label_desc: Use image node_id 9 for calling the DPOptimizerTest obj's underlying member method code with example usage: obj.testAssertOnNoCallOfComputeGradients(cls) without return types