class_docstr: Non differentiability tests for the transform program keyword argument.
code: def test_chained_postprocessing(self, dev, interface):
      def add_one(results):
          return results[0] + 1.0
  
      def scale_two(results):
          return results[0] * 2.0
  
      def transform_add(tape: qml.tape.QuantumTape):
          """A valid transform."""
          return (tape,), add_one
  
      def transform_mul(tape: qml.tape.QuantumTape):
          return (tape,), scale_two
  
      add_container = qml.transforms.core.TransformContainer(
          transform_add
      )
      mul_container = qml.transforms.core.TransformContainer(
          transform_mul
      )
      prog = qml.transforms.core.TransformProgram(
          (add_container, mul_container)
      )
      prog_reverse = qml.transforms.core.TransformProgram(
          (mul_container, add_container)
      )
  
      tape0 = qml.tape.QuantumScript([], [qml.expval(qml.PauliZ(0))])
      tape1 = qml.tape.QuantumScript(
          [qml.PauliX(0)], [qml.expval(qml.PauliZ(0))]
      )
  
      results = qml.execute(
          (tape0, tape1),
          dev,
          interface=interface,
          transform_program=prog,
      )
  
      # 1.0 * 2.0 + 1.0
      assert qml.math.allclose(results[0], 3.0)
      # -1.0 * 2.0 + 1.0 = -1.0
      assert qml.math.allclose(results[1], -1.0)
  
      results_reverse = qml.execute(
          (tape0, tape1),
          dev,
          interface=interface,
          transform_program=prog_reverse,
      )
  
      # (1.0 + 1.0) * 2.0 = 4.0
      assert qml.math.allclose(results_reverse[0], 4.0)
      # (-1.0 + 1.0) * 2.0 = 0.0
      assert qml.math.allclose(results_reverse[1], 0.0)
  
file_path: pennylane/tests/interfaces/test_transform_program_integration.py
imports: import copy
  from typing import Tuple, Callable
  from functools import partial
  import pytest
  import numpy
  import pennylane
label_desc: Use image node_id 6 for calling the TestTransformProgram obj's underlying member method code with example usage: obj.test_chained_postprocessing(dev, interface) and returns: unknown, unknown, tape,  add_one, tape,  scale_two