class_docstr: Common tests for Sonnet optimizers.
code: def testAllUpdatesNone(self):
      parameters = [tf.Variable(1.0), tf.Variable(2.0)]
      updates = [None, None]
      optimizer = self.make_optimizer()
      if is_tf_optimizer(optimizer):
          msg = "No gradients provided for any variable"
      else:
          msg = "No updates provided for any parameter"
      with self.assertRaisesRegex(ValueError, msg):
          optimizer.apply(updates, parameters)
  
imports: import itertools
  from absl.testing import parameterized
  import numpy
  from sonnet.src import base
  from sonnet.src import test_utils
  import tensorflow
  import tree
label_desc: Use image node_id 5 for calling the OptimizerTestBase obj's underlying member method code with example usage: obj.testAllUpdatesNone() without return types