def _run_check(self, check_method, ds, max_level):
        """
        Runs a check and appends a result to the values list.
        @param bound method check_method: a given check method
        @param netCDF4 dataset ds
        @param int max_level: check level
        @return list: list of Result objects
        """
        val = check_method(ds)
        if isinstance(val, list):
            check_val = []
            for v in val:
                res = fix_return_value(v, check_method.__func__.__name__,
                                       check_method, check_method.__self__)
                if max_level is None or res.weight > max_level:
                    check_val.append(res)

            return check_val
        else:
            check_val = fix_return_value(val, check_method.__func__.__name__,
                                         check_method, check_method.__self__)
            if max_level is None or check_val.weight > max_level:
                return [check_val]
            else:
                return []
Runs a check and appends a result to the values list.
        @param bound method check_method: a given check method
        @param netCDF4 dataset ds
        @param int max_level: check level
        @return list: list of Result objects