class_docstr: Test the transform program class and its method.
docstr: Tests that we can compare TransformProgram objects with the '==' and '!=' operators.
docstr_tok: ["Tests","that","we","can","compare","TransformProgram","objects","with","the","'==","'","and","'","!","=","'","operators","."]
code: def test_equality(self):
      """Tests that we can compare TransformProgram objects with the '==' and '!=' operators."""
      t1 = TransformContainer(
          qml.transforms.compile.transform,
          kwargs={"num_passes": 2, "expand_depth": 1},
      )
      t2 = TransformContainer(
          qml.transforms.compile.transform,
          kwargs={"num_passes": 2, "expand_depth": 1},
      )
      t3 = TransformContainer(
          qml.transforms.transpile.transform,
          kwargs={"coupling_map": [(0, 1), (1, 2)]},
      )
  
      p1 = TransformProgram([t1, t3])
      p2 = TransformProgram([t2, t3])
      p3 = TransformProgram([t3, t2])
  
      # test for equality of identical objects
      assert p1 == p2
      # test for inequality of different objects
      assert p1 != p3
      assert p1 != t1
  
      # Test inequality with different transforms
      t4 = TransformContainer(
          qml.transforms.transpile.transform,
          kwargs={"coupling_map": [(0, 1), (2, 3)]},
      )
      p4 = TransformProgram([t1, t4])
      assert p1 != p4
  
imports: from typing import Sequence, Callable
  import pytest
  import pennylane
  from pennylane.tape import QuantumScript
  from pennylane.transforms.core import transform, TransformProgram, TransformError, TransformContainer
  from pennylane.transforms.core.transform_program import _batch_postprocessing, _apply_postprocessing_stack, null_postprocessing
  from pennylane.typing import ResultBatch, Result
label_desc: Use image node_id 10 for calling the TestTransformProgram obj's underlying member method code with example usage: obj.test_equality() without return types