gpt4 book ai didi

unit-testing - 如何使用集合的组合作为测试数据

转载 作者:行者123 更新时间:2023-11-28 19:39:38 24 4
gpt4 key购买 nike

我想用来自一组边缘案例和正常值的元组来测试一个函数。例如,在测试一个函数时,只要给定形成有效三角形的三个长度,它就会返回 true,我会遇到特定情况,负数/小数/大数,值接近溢出等;更重要的是,主要目的是生成这些值的组合,没有重复,以获得一组测试数据。

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

As a note: I actually know the answer to this, but it might be helpful for others, and a challenge for people here! --will post my answer later on.

最佳答案

绝对可以,尤其是处理很多这样的排列/组合时,我可以肯定地看到第一遍会是一个问题。

有趣的 python 实现,尽管我基于“算法 515”(见下文)用 C 和 Ocaml 编写了一个不错的实现。他用 Fortran 编写了他的语言,因为当时所有“算法 XX”论文都很常见,嗯,那个程序集或 c。我不得不重写它并做一些小的改进来处理数组而不是数字范围。这一个进行随机访问,我仍在努力获得 Knuth 第 4 卷分册 2 中提到的那些的一些很好的实现。我将向读者解释这是如何工作的。不过如果有人好奇,我不反对写点东西。

/** [combination c n p x]
* get the [x]th lexicographically ordered set of [p] elements in [n]
* output is in [c], and should be sizeof(int)*[p] */
void combination(int* c,int n,int p, int x){
int i,r,k = 0;
for(i=0;i<p-1;i++){
c[i] = (i != 0) ? c[i-1] : 0;
do {
c[i]++;
r = choose(n-c[i],p-(i+1));
k = k + r;
} while(k < x);
k = k - r;
}
c[p-1] = c[p-2] + x - k;
}

~“算法 515:从词典索引生成向量”; Buckles, B. P. 和 Lybanon, M. ACM 数学软件交易,卷。 3,第 2 期,1977 年 6 月。

关于unit-testing - 如何使用集合的组合作为测试数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/561/

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