class_docstr: Tests to ensure the transform itself works in all interfaces.
docstr: Test for applying the transform on a QNode.
docstr_tok: ["Test","for","applying","the","transform","on","a","QNode","."]
code: def test_unitary_to_rot_device_transform_programqnode(self):
      """Test for applying the transform on a QNode."""
      dev = qml.device("default.qubit", wires=2)
  
      U = np.exp(1j * 0.02) * qml.Rot(-1.0, 2.0, -3.0, wires=0).matrix()
  
      @qml.qnode(device=dev)
      def circuit(U):
          qml.Hadamard(wires=1)
          qml.QubitUnitary(U, wires=0)
          qml.CNOT(wires=[1, 0])
          return qml.expval(qml.PauliZ(0))
  
      transformed_qnode = unitary_to_rot(circuit)
      res_trans = transformed_qnode(U)
      res = circuit(U)
      assert np.allclose(res_trans, res)
  
imports: from itertools import product
  import pytest
  from gate_data import I, Z, S, T, H, X
  from test_optimization.utils import check_matrix_equivalence
  import pennylane
  from pennylane import numpy
  from pennylane.wires import Wires
  from pennylane.transforms import unitary_to_rot
label_desc: Use image node_id 1 for calling the TestDecomposeSingleQubitUnitaryTransform obj's underlying member method code with example usage: obj.test_unitary_to_rot_device_transform_programqnode() and returns: qml