code: def test_expect_element_custom_funcname(self):
      set_ = {"a", "b"}
  
      class Foo(object):
          @expect_element(__funcname="ArgleBargle", a=set_)
          def __init__(self, a):
              self.a = a
  
      with self.assertRaises(ValueError) as e:
          Foo("c")
  
      expected_message = (
          "ArgleBargle() expected a value in {set_!r}"
          " for argument 'a', but got 'c' instead."
      ).format(
          # We special-case set to show a tuple instead of the set repr.
          set_=tuple(sorted(set_)),
      )
      self.assertEqual(e.exception.args[0], expected_message)
  
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 zipline.utils.preprocess import call, preprocess
  from zipline.utils.input_validation import expect_dimensions, ensure_timezone, expect_element, expect_dtypes, expect_types, optional, optionally
label_desc: Use image node_id 14 for calling the PreprocessTestCase obj's underlying member method code with example usage: obj.test_expect_element_custom_funcname() without return types