docstr: Assign made-up gradient to test custom_gradient.
docstr_tok: ["Assign","made-up","gradient","to","test","custom_gradient","."]
code: def test_custom_gradient_two_vector_vars(self):
      """Assign made-up gradient to test custom_gradient."""
  
      def grad_x(x, y):
          return 6 * (x - y)
  
      def grad_y(x, y):
          return 6 * (y - x)
  
      @gs.autodiff.custom_gradient(grad_x, grad_y)
      def func(x, y):
          return gs.sum((x - y) ** 2)
  
      arg_x = gs.array([1.0, 3.0])
      arg_y = gs.array([2.0, 5.0])
  
      result_val, result_grad = gs.autodiff.value_and_grad(
          func, argnums=(0, 1)
      )(arg_x, arg_y)
  
      self.assertTrue(isinstance(result_grad, tuple))
      result_grad_x, result_grad_y = result_grad
  
      expected_val = func(arg_x, arg_y)
      expected_grad_x = grad_x(arg_x, arg_y)
      expected_grad_y = grad_y(arg_x, arg_y)
  
      self.assertAllClose(result_val, expected_val)
      self.assertAllClose(result_grad_x, expected_grad_x)
      self.assertAllClose(result_grad_y, expected_grad_y)
  
imports: import warnings
  import numpy
  import pytest
  import geomstats.backend
  from geomstats.geometry.grassmannian import Grassmannian
  from geomstats.geometry.special_euclidean import SpecialEuclidean
  from geomstats.test.test_case import TestCase, autograd_and_torch_only, autograd_only, np_only
label_desc: Use image node_id 11 for calling the TestAutodiff obj's underlying member method code with example usage: obj.test_custom_gradient_two_vector_vars() and returns: unknown, unknown, gs