code: def test_multi_returns_shot_vector():
      """Test that batching works for a simple circuit with multiple returns
      and with a shot vector"""
      dev = qml.device(
          "default.qubit", wires=3, shots=(100, (200, 3), 300)
      )
  
      @qml.batch_params
      @qml.qnode(dev)
      def circuit(data, x, weights):
          qml.templates.AngleEmbedding(data, wires=[0, 1, 2])
          qml.RX(x, wires=0)
          qml.RY(0.2, wires=1)
          qml.templates.StronglyEntanglingLayers(
              weights, wires=[0, 1, 2]
          )
          return qml.expval(qml.PauliZ(0)), qml.probs(wires=[0, 2])
  
      batch_size = 6
      data = np.random.random((batch_size, 3))
      x = np.linspace(0.1, 0.5, batch_size, requires_grad=True)
      weights = np.ones((batch_size, 10, 3, 3), requires_grad=True)
  
      res = circuit(data, x, weights)
  
      assert isinstance(res, tuple)
      assert len(res) == 5
      assert all(isinstance(shot_res, tuple) for shot_res in res)
      assert all(len(shot_res) == 2 for shot_res in res)
      assert all(shot_res[0].shape == (batch_size,) for shot_res in res)
      assert all(
          shot_res[1].shape == (batch_size, 4) for shot_res in res
      )
  
imports: import functools
  import pytest
  import pennylane
  from pennylane import numpy
label_desc: Use image node_id 11 for calling a global function with example usage: test_multi_returns_shot_vector() and returns: qml,  qml