code: def test_preprocess_on_method(self, args, kwargs):
      decorators = [
          preprocess(
              a=call(str), b=call(float), c=call(lambda x: x + 1)
          ),
      ]
  
      for decorator in decorators:
  
          class Foo(object):
              @decorator
              def method(self, a, b, c=3):
                  return a, b, c
  
              @classmethod
              @decorator
              def clsmeth(cls, a, b, c=3):
                  return a, b, c
  
          self.assertEqual(Foo.clsmeth(*args, **kwargs), ("1", 2.0, 4))
          self.assertEqual(Foo().method(*args, **kwargs), ("1", 2.0, 4))
  
imports: from operator import attrgetter
  from types import FunctionType
  from unittest import TestCase
  from nose_parameterized import parameterized
  from numpy import arange, array, dtype
  import pytz
  from six import PY3
  from catalyst.utils.preprocess import call, preprocess
  from catalyst.utils.input_validation import expect_dimensions, ensure_timezone, expect_element, expect_dtypes, expect_types, optional, optionally
label_desc: Use image node_id 8 for calling the PreprocessTestCase obj's underlying member method code with example usage: obj.test_preprocess_on_method(args, kwargs) and returns: a,  b,  c, a,  b,  c