def METHOD_NAME(diff_dict,
                     diff_method='mean',
                     diff_threshold: float=1e-6,
                     print_func=print,
                     indent: str='\t',
                     level: int=0):
    """
    对 diff 字典打印并进行检查的函数
    :param diff_dict:
    :param diff_method: 检查diff的函数，目前支持 min,max,mean,all四种形式，并且支持min,max,mean的相互组合成的list形式，如['min','max']
    :param diff_threshold:
    :param print_func:
    :param indent:
    :param level:
    :return:
    """
    if level == 0:
        if isinstance(diff_method, str):
            if diff_method == 'all':
                diff_method = ['min', 'max', 'mean']
            else:
                diff_method = [diff_method]
    for method in diff_method:
        assert method in ['all', 'min', 'max', 'mean']
    all_passed = True
    cur_indent = indent * level
    for k, v in diff_dict.items():
        if 'mean' in v and 'min' in v and 'max' in v and len(v) == 3:
            print_func('{}{}: '.format(cur_indent, k))
            sub_passed = True
            for method in diff_method:
                if v[method] > diff_threshold:
                    sub_passed = False
                print_func("{}{} diff: check passed: {}, value: {}".format(
                    cur_indent + indent, method, sub_passed, v[method]))
                all_passed = all_passed and sub_passed
        else:
            print_func('{}{}'.format(cur_indent, k))
            sub_passed = METHOD_NAME(v, diff_method, diff_threshold,
                                          print_func, indent, level + 1)
            all_passed = all_passed and sub_passed
    return all_passed