Whalefall126 发表于 2023-9-5 00:04:33

TDD

根据图片中的问题,我的答案如下,求大佬指导,
也麻烦各位路过的大佬能写两个不同的TDD,我想多学学,谢谢!

测试一:

import json
import numpy as np

def summarise_and_save (filename, arr):
    output = {}
    output['min'] = int(np.min(arr))
    output['max'] = int(np.max(arr))
    output['mean'] = int(np.mean(arr))
    output['series'] = list(np.round(arr))
    with open (filename,'w') as file:
      json.dump(output,file,default=int)

def test1():
    '''
    Test that the function can save a NumPy array to a JSON file.
    '''
    arr = np.array()

    filename = 'test1.json'
    summarise_and_save(filename, arr)
    with open (filename,'r') as file:
      data = json.load(file)
    assert data['min']==1,"the function can't save a NumPy array to a JSON file"
    print(True)
    assert data['max']==5,"the function can't save a NumPy array to a JSON file"
    print(True)
    assert data['mean']==3,"the function can't save a NumPy array to a JSON file"
    print(True)
    assert data['series']==,"the function can't save a NumPy array to a JSON file"
    print(True)
test1()

测试二:

import json
import numpy as np

def summarise_and_save (filename, arr):
    output = {}
    output['min'] = round(np.min(arr),2)
    output['max'] = round(np.max(arr),2)
    output['mean'] = round(np.mean(arr),2)
    output['series'] = list(np.round(arr,2))
    with open (filename,'w') as file:
      json.dump(output,file)
      
def test2():
    '''
    Test that the function get a non-Numpy array.
    '''
    arr_invalid =
    try:
      summarise_and_save ('invalid_output.json', arr_invalid)
    except:
      print("It's a invalid array")
test2()


isdkz 发表于 2023-9-5 00:04:57

对于您提供的两个测试用例,我看到您正在测试一个名为 summarise_and_save 的函数,该函数将一个NumPy数组保存到JSON文件中。以下是对这两个测试用例的详细解释:

测试一:
这个测试用例测试了 summarise_and_save 函数是否能够正确地将NumPy数组保存到JSON文件中,并且保存的JSON文件中包含了数组的最小值、最大值、平均值以及四舍五入后的数组。首先,创建一个NumPy数组 arr ,然后调用 summarise_and_save 函数将 arr 保存到名为 test1.json 的JSON文件中。接着,打开这个JSON文件并读取其中的数据。最后,使用断言语句来检查保存的数据是否与预期的一致。如果数据不一致,则会输出错误信息。这个测试用例通过了四个断言语句的检查,所以会打印出 True 。

测试二:
这个测试用例测试了 summarise_and_save 函数在处理非NumPy数组时的行为。首先,创建一个非NumPy数组 arr_invalid ,然后调用 summarise_and_save 函数尝试将 arr_invalid 保存到名为 invalid_output.json 的JSON文件中。由于 summarise_and_save 函数只能处理NumPy数组,所以会抛出异常。在 test2 函数中使用了 try-except 语句来捕获这个异常,并输出一条错误信息。这个测试用例没有使用断言语句来检查结果,因为我们只关心函数在处理非NumPy数组时是否会抛出异常。

希望以上解释对您有帮助!如果您还有其他问题,请随时提问。
页: [1]
查看完整版本: TDD