code: def _check_params(self, parameters):
          
          a_valid_fn = []
          if self.target_fn is None:
              if callable(self):
                  a_valid_fn.append(self.__call__)
              else:
                  raise TypeError('invalid argument: tested object is not callable,\
                   please provide a valid target_fn')
          elif isinstance(self.target_fn, types.FunctionType) \
                  or isinstance(self.target_fn, types.MethodType):
              a_valid_fn.append(self.target_fn)
          else:
              a_valid_fn.append(self.target_fn.__call__)
  
          if not isinstance(parameters, str):
              for p in parameters:
                  for fn in a_valid_fn:
                      if has_arg(fn, p):
                          pass
                      else:
                          raise ValueError('{} is not a valid parameter'.format(p))
          else:
              raise TypeError('invalid argument: list or dictionnary expected')
docs: Checks for mistakes in 'parameters'
  
          Args :
              parameters: dict, parameters to be checked
  
          Raises :
              ValueError: if any parameter is not a valid argument for the target function
                  or the target function is not defined
              TypeError: if argument parameters is not iterable