class_docstr: Integration test to ensure that the optimizer
  minimizes simple examples
docstr: Test that multiple qubit rotation can be optimized
docstr_tok: ["Test","that","multiple","qubit","rotation","can","be","optimized"]
code: def test_multi_qubit_rotation(self):
      """Test that multiple qubit rotation can be optimized"""
      dev = qml.device("default.qubit", wires=2, shots=100)
  
      @qml.qnode(dev)
      def circuit(x):
          qml.RX(x[0], wires=0)
          qml.RY(x[1], wires=1)
          qml.RZ(x[2], wires=1)
          qml.CNOT(wires=[0, 1])
          return qml.expval(qml.PauliX(0) @ qml.PauliY(1))
  
      params = np.array([0.1, 0.3, 0.4], requires_grad=True)
      initial_loss = circuit(params)
  
      min_shots = 10
      loss = initial_loss
      opt = qml.ShotAdaptiveOptimizer(min_shots=10)
  
      for _ in range(100):
          params = opt.step(circuit, params)
          loss = circuit(params)
  
      assert loss < initial_loss
      assert np.allclose(circuit(params), -1, atol=0.1, rtol=0.2)
      assert opt.shots_used > min_shots
  
imports: import pytest
  from flaky import flaky
  import pennylane
  from pennylane import numpy
label_desc: Use image node_id 1 for calling the TestOptimization obj's underlying member method code with example usage: obj.test_multi_qubit_rotation() and returns: qml