class_docstr: Test for adjoint_jvp
docstr: Test JVP is correct for custom wire labels
docstr_tok: ["Test","JVP","is","correct","for","custom","wire","labels"]
code: def test_custom_wire_labels(self, tangents, wires, tol):
      """Test JVP is correct for custom wire labels"""
      x = np.array(0.654)
      y = np.array(1.221)
  
      obs = [
          qml.expval(qml.PauliZ(wires[0])),
          qml.expval(qml.PauliY(wires[1])),
          qml.expval(qml.PauliX(wires[0])),
      ]
      qs = QuantumScript(
          [qml.RY(x, wires[0]), qml.RX(y, wires[1])],
          obs,
          trainable_params=[0, 1],
      )
      assert qs.wires.tolist() == wires
  
      actual = adjoint_jvp(qs, tangents)
      assert isinstance(actual, tuple)
      assert len(actual) == 3
  
      jac = np.array([[-np.sin(x), 0], [0, -np.cos(y)], [np.cos(x), 0]])
      expected = jac @ np.array(tangents)
      assert np.allclose(actual, expected, atol=tol)
  
imports: import pytest
  import pennylane
  from pennylane.devices.qubit import adjoint_jacobian, adjoint_jvp, adjoint_vjp
  from pennylane.tape import QuantumScript
  import pennylane.numpy
label_desc: Use image node_id 5 for calling the TestAdjointJVP obj's underlying member method code with example usage: obj.test_custom_wire_labels(tangents, wires, tol) without return types