code: def _test_preprocess_on_function(self, args, kwargs):
      decorators = [
          preprocess(
              a=call(str), b=call(float), c=call(lambda x: x + 1)
          ),
      ]
  
      for decorator in decorators:
  
          @decorator
          def func(a, b, c=3):
              return a, b, c
  
          self.assertEqual(func(*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 7 for calling the PreprocessTestCase obj's underlying member method code with example usage: obj._test_preprocess_on_function(args, kwargs) and returns: a,  b,  c