code: def test_parameter_type_checking(ford_2012):
      sma = abstract.Function("SMA", timeperiod=10)
  
      expected_error = re.escape(
          "Invalid parameter value for timeperiod (expected int, got float)"
      )
  
      with pytest.raises(TypeError, match=expected_error):
          sma(ford_2012["close"], 35.5)
  
      with pytest.raises(TypeError, match=expected_error):
          abstract.Function("SMA", timeperiod=35.5)
  
      with pytest.raises(TypeError, match=expected_error):
          sma.parameters = {"timeperiod": 35.5}
  
      with pytest.raises(TypeError, match=expected_error):
          sma.set_parameters(timeperiod=35.5)
  
imports: import copy
  import re
  import threading
  import time
  import numpy
  import pytest
  from numpy.testing import assert_array_equal, assert_raises
  import talib
  from talib import abstract, func
label_desc: Use image node_id 14 for calling a global function with example usage: test_parameter_type_checking(ford_2012) without return types