gpt4 book ai didi

testing - 组合测试数据

转载 作者:行者123 更新时间:2023-11-28 20:44:35 25 4
gpt4 key购买 nike

我希望能够使用来自一组边缘案例和正常值的元组来测试一个函数。例如,在测试一个在给定三个长度形成有效三角形时返回 true 的函数时,我会遇到特定情况、负数、小数、大数、接近溢出的值等等。然后生成这些值的组合,没有重复,以获得一组测试数据。

> (inf,0,-1), (5,10,1000), (10,5,5), (0,-1,5), (1000,inf,inf),
>
> ...

最佳答案

在全新的 Python 2.6 中,您有一个标准解决方案,其中包含 itertools 模块,该模块返回可迭代对象的笛卡尔积:

import itertools

print list(itertools.product([1,2,3], [4,5,6]))
[(1, 4), (1, 5), (1, 6),
(2, 4), (2, 5), (2, 6),
(3, 4), (3, 5), (3, 6)]

您可以提供一个“repeat”参数来执行带有可迭代对象及其自身的乘积:

print list(itertools.product([1,2], repeat=3))
[(1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2),
(2, 1, 1), (2, 1, 2), (2, 2, 1), (2, 2, 2)]

你也可以通过组合来调整一些东西:

print list(itertools.combinations('123', 2))
[('1', '2'), ('1', '3'), ('2', '3')]

如果顺序很重要,则可以进行排列:

print list(itertools.permutations([1,2,3,4], 2))
[(1, 2), (1, 3), (1, 4),
(2, 1), (2, 3), (2, 4),
(3, 1), (3, 2), (3, 4),
(4, 1), (4, 2), (4, 3)]

当然,所有这些很酷的东西并不完全相同,但您可以以某种方式使用它们来解决您的问题。

请记住,您可以使用 list()、tuple() 和 set() 将元组或列表转换为集合,反之亦然。

关于testing - 组合测试数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18381223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com