class_docstr: Tests that the transforms are differentiable if the inner execution is differentiable.
  
  Note that testing is only done for the required method for each ml framework.
class_docstr_tok: ["Tests","that","the","transforms","are","differentiable","if","the","inner","execution","is","differentiable",".","Note","that","testing","is","only","done","for","the","required","method","for","each","ml","framework","."]
docstr: Test that execute_and_compute_jvp is jittable and differentiable with jax.
docstr_tok: ["Test","that","execute_and_compute_jvp","is","jittable","and","differentiable","with","jax","."]
code: def test_execute_jvp_jax(self):
      """Test that execute_and_compute_jvp is jittable and differentiable with jax."""
      import jax
  
      jpc = param_shift_jpc
  
      def f(x, tangents):
          tape = qml.tape.QuantumScript(
              [qml.RX(x, 0)], [qml.expval(qml.PauliZ(0))]
          )
          return jpc.execute_and_compute_jvp((tape,), tangents)[1][0]
  
      x = jax.numpy.array(0.1)
      tangents = ((jax.numpy.array(0.5),),)
  
      res = f(x, tangents=tangents)
      assert qml.math.allclose(res, -tangents[0][0] * np.sin(x))
  
      jit_res = jax.jit(f)(x, tangents=tangents)
      assert qml.math.allclose(jit_res, -tangents[0][0] * np.sin(x))
  
      grad = jax.grad(f)(x, tangents=tangents)
      assert qml.math.allclose(grad, -tangents[0][0] * np.cos(x))
  
      tangent_grad = jax.grad(f, argnums=1)(x, tangents)
      assert qml.math.allclose(tangent_grad[0][0], -np.sin(x))
  
imports: import pytest
  from cachetools import LRUCache
  from param_shift_dev import ParamShiftDerivativesDevice
  import numpy
  import pennylane
  from pennylane.workflow.jacobian_products import JacobianProductCalculator, TransformJacobianProducts, DeviceDerivatives, DeviceJacobianProducts, LightningVJPs
label_desc: Use image node_id 1 for calling the TestTransformsDifferentiability obj's underlying member method code with example usage: obj.test_execute_jvp_jax() and returns: jpc