class_docstr: Test errors raised by stoch_pulse_grad.
class_docstr_tok: ["Test","errors","raised","by","stoch_pulse_grad","."]
docstr: Test that an empty gradient is returned when there are no trainable parameters.
docstr_tok: ["Test","that","an","empty","gradient","is","returned","when","there","are","no","trainable","parameters","."]
code: def test_raises_non_pulse_marked_as_trainable(self):
      """Test that an empty gradient is returned when there are no trainable parameters."""
      ops = [qml.RX(0.4, wires=0)]
      tape = qml.tape.QuantumScript(
          ops, measurements=[qml.expval(qml.PauliZ(0))]
      )
      tape.trainable_params = [0]
      with pytest.raises(
          ValueError,
          match="stoch_pulse_grad does not support differentiating",
      ):
          stoch_pulse_grad(tape)
  
imports: import warnings
  import copy
  import pytest
  import numpy
  import pennylane
  from pennylane.gradients.general_shift_rules import eigvals_to_frequencies, generate_shift_rule
  from pennylane.gradients.pulse_gradient import _parshift_and_integrate, _split_evol_ops, _split_evol_tape, stoch_pulse_grad
label_desc: Use image node_id 6 for calling the TestStochPulseGradErrors obj's underlying member method code with example usage: obj.test_raises_non_pulse_marked_as_trainable() without return types