code: def testGradWrtRef(self):
      for dtype in [dtypes.half, dtypes.float32, dtypes.float64]:
          # train.GradientDescentOptimizer is V1 only API.
          with ops.Graph().as_default(), self.cached_session():
              opt = gradient_descent.GradientDescentOptimizer(3.0)
              values = [1.0, 3.0]
              vars_ = [
                  variables.Variable([v], dtype=dtype) for v in values
              ]
              grads_and_vars = opt.compute_gradients(
                  vars_[0] + vars_[1], vars_
              )
              self.evaluate(variables.global_variables_initializer())
              for grad, _ in grads_and_vars:
                  self.assertAllCloseAccordingToType(
                      [1.0], self.evaluate(grad)
                  )
  
imports: from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import indexed_slices
  from tensorflow.python.framework import ops
  from tensorflow.python.ops import embedding_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import resource_variable_ops
  from tensorflow.python.ops import resources
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import test
  from tensorflow.python.training import gradient_descent
label_desc: Use image node_id 7 for calling the GradientDescentOptimizerTest obj's underlying member method code with example usage: obj.testGradWrtRef() without return types