code: def test_class_interact():
      parent = Parameter.create(name="parent", type="group")
      interactor = Interactor(parent=parent, nest=False)
  
      def outside_class_deco(func):
          @wraps(func)
          def wrapper(*args, **kwargs):
              return func(*args, **kwargs)
  
          return wrapper
  
      class A:
          def a(self, x=5):
              return x
  
          @classmethod
          def b(cls, y=5):
              return y
  
          @outside_class_deco
          def c(self, z=5):
              return z
  
      a = A()
      ai = interactor.decorate()(a.a)
      assert ai() == a.a()
  
      bi = interactor.decorate()(A.b)
      assert bi() == A.b()
  
      ci = interactor.decorate()(a.c)
      assert ci() == a.c()
  
imports: from functools import wraps
  import numpy
  import pyqtgraph
  import pytest
  from pyqtgraph import functions
  from pyqtgraph.parametertree import InteractiveFunction, Interactor, interact, RunOptions
  from pyqtgraph.parametertree import Parameter
  from pyqtgraph.parametertree.Parameter import PARAM_TYPES
  from pyqtgraph.parametertree.parameterTypes import GroupParameter
  from pyqtgraph.Qt import QtGui
label_desc: Use image node_id 17 for calling a global function with example usage: test_class_interact() and returns: wrapper, func, x, y, z