class_docstr: Tests for the batch JVP function
class_docstr_tok: ["Tests","for","the","batch","JVP","function"]
docstr: If all tapes have no trainable parameters all outputs will be None
docstr_tok: ["If","all","tapes","have","no","trainable","parameters","all","outputs","will","be","None"]
code: def test_all_tapes_no_trainable_parameters(self):
      """If all tapes have no trainable parameters all outputs will be None"""
  
      with qml.queuing.AnnotatedQueue() as q1:
          qml.RX(0.4, wires=0)
          qml.CNOT(wires=[0, 1])
          qml.expval(qml.PauliZ(0))
  
      tape1 = qml.tape.QuantumScript.from_queue(q1)
      with qml.queuing.AnnotatedQueue() as q2:
          qml.RX(0.4, wires=0)
          qml.RX(0.6, wires=0)
          qml.CNOT(wires=[0, 1])
          qml.expval(qml.PauliZ(0))
  
      tape2 = qml.tape.QuantumScript.from_queue(q2)
      tape1.trainable_params = set()
      tape2.trainable_params = set()
  
      tapes = [tape1, tape2]
      tangents = [np.array([1.0, 0.0]), np.array([1.0, 0.0])]
  
      v_tapes, fn = qml.gradients.batch_jvp(
          tapes, tangents, param_shift
      )
  
      assert v_tapes == []
      assert qml.math.allclose(fn([])[0], np.array(0.0))
      assert qml.math.allclose(fn([])[1], np.array(0.0))
  
imports: import pytest
  import pennylane
  from pennylane import numpy
  from pennylane.gradients import param_shift
label_desc: Use image node_id 2 for calling the TestBatchJVP obj's underlying member method code with example usage: obj.test_all_tapes_no_trainable_parameters() without return types