code: def test__check_params(self):
      def bar_fn(a):
          return str(a)
  
      class Pipo:
          def __init__(self):
              self.name = "pipo"
  
          def __call__(self, message):
              return message
  
      pipo = Pipo()
      obj_with_valid_fn = BaseWrapper(bar_fn, a=10, b="message")
      obj_with_valid_callable_fn = BaseWrapper(pipo, c=10, d="message")
      obj_with_invalid_fn = BaseWrapper([1, 2, 3], fn_name="invalid")
  
      # target_fn is not a callable or function/method
      with self.assertRaises(AttributeError):
          obj_with_invalid_fn._check_params("fn_name")
  
      # parameters is not in target_fn args
      with self.assertRaises(ValueError):
          obj_with_valid_fn._check_params(["c"])
          obj_with_valid_callable_fn._check_params(["e"])
  
      # params is in target_fn args
      try:
          obj_with_valid_fn._check_params(["a"])
          obj_with_valid_callable_fn._check_params(["message"])
      except Exception:
          self.fail("_check_params() raised an unexpected exception")
  
      # params is not a dict or list
      with self.assertRaises(TypeError):
          obj_with_valid_fn._check_params(None)
      with self.assertRaises(TypeError):
          obj_with_valid_fn._check_params("param_name")
  
file_path: lime/lime/tests/test_scikit_image.py
imports: import unittest
  from lime.wrappers.scikit_image import BaseWrapper
  from lime.wrappers.scikit_image import SegmentationAlgorithm
  from skimage.segmentation import quickshift
  from skimage.data import chelsea
  from skimage.util import img_as_float
  import numpy
label_desc: Use image node_id 2 for calling the TestBaseWrapper obj's underlying member method code with example usage: obj.test__check_params() and returns: str, message