code: def test_multi_input_old_style(self):
      arg0 = [2.0, 3.0, 4.0]
      arg1 = [5.0, 6.0, 7.0]
      f_actual = lambda x, y: x * np.log(y)
      g_actual = lambda x, y: (np.log(y), x / np.array(y))
      y, dydx = self.evaluate(
          gradient.value_and_gradient(
              lambda x, y: x * tf.math.log(y), [arg0, arg1]
          )
      )
      self.assertAllClose(f_actual(arg0, arg1), y, atol=1e-6, rtol=1e-6)
      self.assertAllClose(
          g_actual(arg0, arg1), dydx, atol=1e-6, rtol=1e-6
      )
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
  from tensorflow_probability.python.math.gradient import batch_jacobian
  from tensorflow_probability.python.math.gradient import value_and_gradient_with_auto_expansion
label_desc: Use image node_id 5 for calling the GradientTest obj's underlying member method code with example usage: obj.test_multi_input_old_style() without return types