class_docstr: Test integration of the gradient transform decorator
class_docstr_tok: ["Test","integration","of","the","gradient","transform","decorator"]
docstr: Test that a gradient transform acts on QNodes
  correctly when the first argument is non-trainable
docstr_tok: ["Test","that","a","gradient","transform","acts","on","QNodes","correctly","when","the","first","argument","is","non-trainable"]
code: def test_first_non_trainable_argument(self, tol):
      """Test that a gradient transform acts on QNodes
      correctly when the first argument is non-trainable"""
      dev = qml.device("default.qubit", wires=2)
  
      @qml.qnode(dev)
      def circuit(x, y):
          """A quantum circuit that does not use its first parameter."""
          # pylint: disable=unused-argument
          qml.RX(y[0], wires=0)
          qml.RY(y[0], wires=0)
          qml.RZ(y[1], wires=0)
          return qml.probs(wires=[0, 1])
  
      x = np.array([0.1], requires_grad=False)
      y = np.array([0.2, 0.3], requires_grad=True)
  
      expected = qml.jacobian(circuit)(x, y)
      res = qml.gradients.param_shift(circuit)(x, y)
  
      assert np.allclose(res, expected, atol=tol, rtol=0)
  
imports: import pytest
  import pennylane
  from pennylane import numpy
  from pennylane.gradients.gradient_transform import _find_gradient_methods, _validate_gradient_methods, choose_trainable_params
label_desc: Use image node_id 13 for calling the TestGradientTransformIntegration obj's underlying member method code with example usage: obj.test_first_non_trainable_argument(tol) and returns: qml