class_docstr: Test for adjoint_jvp
docstr: Test JVP is correct for a single parameter and multiple observables
docstr_tok: ["Test","JVP","is","correct","for","a","single","parameter","and","multiple","observables"]
code: def test_single_param_multi_obs(self, tangents, tol):
      """Test JVP is correct for a single parameter and multiple observables"""
      x = np.array(0.654)
      qs = QuantumScript(
          [qml.RY(x, 0)],
          [qml.expval(qml.PauliZ(0)), qml.expval(qml.PauliX(0))],
          trainable_params=[0],
      )
  
      actual = adjoint_jvp(qs, tangents)
      assert isinstance(actual, tuple)
      assert len(actual) == 2
  
      expected = tangents[0] * np.array([-np.sin(x), np.cos(x)])
      assert np.allclose(actual, expected, atol=tol)
  
imports: import pytest
  import pennylane
  from pennylane.devices.qubit import adjoint_jacobian, adjoint_jvp, adjoint_vjp
  from pennylane.tape import QuantumScript
  import pennylane.numpy
label_desc: Use image node_id 2 for calling the TestAdjointJVP obj's underlying member method code with example usage: obj.test_single_param_multi_obs(tangents, tol) without return types