class_docstr: Tests for parameter gradient methods
docstr: Test that a non-differentiable parameter is
  correctly marked
docstr_tok: ["Test","that","a","non-differentiable","parameter","is","correctly","marked"]
code: def test_non_differentiable(self):
      """Test that a non-differentiable parameter is
      correctly marked"""
  
      with qml.queuing.AnnotatedQueue() as q:
          qml.FockState(1, wires=0)
          qml.Displacement(0.543, 0, wires=[1])
          qml.Beamsplitter(0, 0, wires=[0, 1])
          qml.expval(qml.QuadX(wires=[0]))
  
      tape = qml.tape.QuantumScript.from_queue(q)
      assert _grad_method_cv(tape, 0) is None
      assert _grad_method_cv(tape, 1) == "A"
      assert _grad_method_cv(tape, 2) == "A"
      assert _grad_method_cv(tape, 3) == "A"
      assert _grad_method_cv(tape, 4) == "A"
  
      trainable_params = choose_trainable_params(tape, None)
      diff_methods = _find_gradient_methods_cv(tape, trainable_params)
  
      assert diff_methods[0] is None
      assert diff_methods[1] == "A"
      assert diff_methods[2] == "A"
      assert diff_methods[3] == "A"
      assert diff_methods[4] == "A"
  
imports: import unittest.mock
  import pytest
  import pennylane
  from pennylane import numpy
  from pennylane.gradients import param_shift_cv
  from pennylane.gradients.gradient_transform import choose_trainable_params
  from pennylane.gradients.parameter_shift_cv import _grad_method_cv, _find_gradient_methods_cv, _transform_observable
label_desc: Use image node_id 1 for calling the TestGradAnalysis obj's underlying member method code with example usage: obj.test_non_differentiable() without return types