class_docstr: Test vector-valued jacobian returns for the JAX Python interface.
class_docstr_tok: ["Test","vector-valued","jacobian","returns","for","the","JAX","Python","interface","."]
docstr: Tests computing multiple expectation values in a tape with a single
  trainable parameter.
docstr_tok: ["Tests","computing","multiple","expectation","values","in","a","tape","with","a","single","trainable","parameter","."]
code: def test_multiple_expvals_single_par(self, execute_kwargs):
      """Tests computing multiple expectation values in a tape with a single
      trainable parameter."""
      dev = qml.device("default.qubit.legacy", wires=2)
      params = jax.numpy.array([0.1])
  
      def cost(a, cache):
          with qml.queuing.AnnotatedQueue() as q:
              qml.RY(a[0], wires=0)
              qml.expval(qml.PauliZ(0))
              qml.expval(qml.PauliZ(1))
  
          tape = qml.tape.QuantumScript.from_queue(q)
          res = qml.execute([tape], dev, cache=cache, **execute_kwargs)
          return res[0]
  
      res = jax.jacobian(cost)(params, cache=None)
  
      assert isinstance(res, tuple)
  
      assert isinstance(res[0], jax.numpy.ndarray)
      assert res[0].shape == (1,)
  
      assert isinstance(res[1], jax.numpy.ndarray)
      assert res[1].shape == (1,)
  
imports: import pytest
  import numpy
  import pennylane
  from pennylane.gradients import param_shift
  from pennylane import execute
label_desc: Use image node_id 2 for calling the TestVectorValued obj's underlying member method code with example usage: obj.test_multiple_expvals_single_par(execute_kwargs) and returns: res