code: def test_tensor_learning_rate_and_conditional_gradient_nuclear():
      for dtype in _dtypes_with_checking_system(
          use_gpu=test_utils.is_gpu_available(),
          system=platform.system(),
      ):
          # TODO:
          # Based on issue #36764 in the following link,
          #        "https://github.com/tensorflow/tensorflow/issues/36764"
          # tf.half is not registered for tf.linalg.svd function on Windows
          # CPU version.
          # So we have to remove tf.half when testing with Windows CPU version.
          var0 = tf.Variable([1.0, 2.0], dtype=dtype)
          var1 = tf.Variable([3.0, 4.0], dtype=dtype)
          grads0 = tf.constant([0.1, 0.1], dtype=dtype)
          grads1 = tf.constant([0.01, 0.01], dtype=dtype)
          top_singular_vector0 = (
              cg_lib.ConditionalGradient._top_singular_vector(grads0)
          )
          top_singular_vector1 = (
              cg_lib.ConditionalGradient._top_singular_vector(grads1)
          )
          ord = "nuclear"
          cg_opt = cg_lib.ConditionalGradient(
              learning_rate=tf.constant(0.5),
              lambda_=tf.constant(0.01),
              ord=ord,
          )
          _ = cg_opt.apply_gradients(
              zip([grads0, grads1], [var0, var1])
          )
  
          # Check we have slots
          assert ["conditional_gradient"] == cg_opt.get_slot_names()
          slot0 = cg_opt.get_slot(var0, "conditional_gradient")
          assert slot0.get_shape() == var0.get_shape()
          slot1 = cg_opt.get_slot(var1, "conditional_gradient")
          assert slot1.get_shape() == var1.get_shape()
  
          # Check that the parameters have been updated.
          test_utils.assert_allclose_according_to_type(
              np.array(
                  [
                      1.0 * 0.5
                      - (1 - 0.5) * 0.01 * top_singular_vector0[0],
                      2.0 * 0.5
                      - (1 - 0.5) * 0.01 * top_singular_vector0[1],
                  ]
              ),
              var0.numpy(),
          )
          test_utils.assert_allclose_according_to_type(
              np.array(
                  [
                      3.0 * 0.5
                      - (1 - 0.5) * 0.01 * top_singular_vector1[0],
                      4.0 * 0.5
                      - (1 - 0.5) * 0.01 * top_singular_vector1[1],
                  ]
              ),
              var1.numpy(),
          )
          # Step 2: the conditional_gradient contain the
          # previous update.
          cg_opt.apply_gradients(zip([grads0, grads1], [var0, var1]))
  
          # Check that the parameters have been updated.
          test_utils.assert_allclose_according_to_type(
              np.array(
                  [
                      (
                          1.0 * 0.5
                          - (1 - 0.5) * 0.01 * top_singular_vector0[0]
                      )
                      * 0.5
                      - (1 - 0.5) * 0.01 * top_singular_vector0[0],
                      (
                          2.0 * 0.5
                          - (1 - 0.5) * 0.01 * top_singular_vector0[1]
                      )
                      * 0.5
                      - (1 - 0.5) * 0.01 * top_singular_vector0[1],
                  ]
              ),
              var0.numpy(),
          )
          test_utils.assert_allclose_according_to_type(
              np.array(
                  [
                      (
                          3.0 * 0.5
                          - (1 - 0.5) * 0.01 * top_singular_vector1[0]
                      )
                      * 0.5
                      - (1 - 0.5) * 0.01 * top_singular_vector1[0],
                      (
                          4.0 * 0.5
                          - (1 - 0.5) * 0.01 * top_singular_vector1[1]
                      )
                      * 0.5
                      - (1 - 0.5) * 0.01 * top_singular_vector1[1],
                  ]
              ),
              var1.numpy(),
          )
  
imports: import numpy
  import pytest
  import platform
  import tensorflow
  from tensorflow_addons.utils import test_utils
  from tensorflow_addons.optimizers import conditional_gradient
label_desc: Use image node_id 8 for calling a global function with example usage: test_tensor_learning_rate_and_conditional_gradient_nuclear() without return types