鱼C论坛

 找回密码
 立即注册
查看: 1749|回复: 1

TDD

[复制链接]
发表于 2023-9-5 00:04:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
根据图片中的问题,我的答案如下,求大佬指导,
也麻烦各位路过的大佬能写两个不同的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([1,2,3,4,5])

    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']==[1,2,3,4,5],"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 = [1,2,3]
    try:
        summarise_and_save ('invalid_output.json', arr_invalid)
    except:
        print("It's a invalid array")
test2()


截屏2023-09-05 上午1.29.22.png
截屏2023-09-05 上午1.29.33.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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数组时是否会抛出异常。

希望以上解释对您有帮助!如果您还有其他问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 15:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表