class_docstr: Tests for the generate_multi_shift_rule function
class_docstr_tok: ["Tests","for","the","generate_multi_shift_rule","function"]
docstr: Test that the generate_multi_shift_rule function
  correctly returns a single-parameter shift rule
code: def test_single_parameter(self):
      """Test that the generate_multi_shift_rule function
      correctly returns a single-parameter shift rule"""
      res = generate_multi_shift_rule([(1,)])
      expected = [[0.5, np.pi / 2], [-0.5, -np.pi / 2]]
      assert np.allclose(res, expected)
  
      res = generate_multi_shift_rule([(1,)], orders=[2])
      expected = [[-0.5, 0], [0.5, -np.pi]]
      assert np.allclose(res, expected)
  
      res = generate_multi_shift_rule(
          [(1,)], orders=[2], shifts=[(np.pi / 4,)]
      )
      expected = [[-1, 0], [0.5, -np.pi / 2], [0.5, np.pi / 2]]
      assert np.allclose(res, expected)
  
imports: import pytest
  import numpy
  import pennylane
  from pennylane.gradients.general_shift_rules import eigvals_to_frequencies, frequencies_to_period, generate_shift_rule, _get_shift_rule, generate_multi_shift_rule, generate_shifted_tapes, generate_multishifted_tapes, _iterate_shift_rule_with_multipliers
label_desc: Use image node_id 1 for calling the TestMultiShiftRule obj's underlying member method code with example usage: obj.test_single_parameter() without return types