code: def test_eq(self):
      for i, op_i in enumerate(self.ops):
          assert op_i == op_i
          assert op_i == self.copy(op_i)
          assert op_i == self.deepcopy(op_i)
          assert op_i == self.clone(op_i)
          assert op_i != self.other_op
          for j, op_j in enumerate(self.ops):
              if i == j:
                  continue
              assert op_i != op_j
  
imports: import logging
  import sys
  from copy import copy, deepcopy
  from functools import wraps
  import numpy
  import pytest
  import pytensor
  from pytensor.compile.debugmode import str_diagnostic
  from pytensor.configdefaults import config
  from pytensor.gradient import verify_grad
  from pytensor.tensor.basic import as_tensor_variable
  from pytensor.tensor.math import _allclose
  from pytensor.tensor.math import add
label_desc: Use image node_id 4 for calling the OpContractTestMixin obj's underlying member method code with example usage: obj.test_eq() without return types