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()
对于您提供的两个测试用例,我看到您正在测试一个名为 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]