gpt4 book ai didi

c++ - 单元测试 C++ 代码的简单有效方法,您无法在纸上解决

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

我正在尝试使用 Visual Studio 2015 的内置单元测试框架测试一些 C++ 代码。我编写了一些代码来测试每小时、每天和每周的模型,通过计算确定系数 (R^2) 来查看哪个模型最可靠地适合一组现实生活数据。

现实生活中的数据需要从图表中“读取”出来,我有一个经过测试和验证的例程可以执行此操作。

我知道我希望每周模型能够完美契合,而其他两个则不会。要在纸上点他,需要 ~300 个方程式计算才能得到我正在使用的值,然后计算出 R^2 值。我宁愿不那样做...

我如何测试这段代码?作为一个概念,我是单元测试的新手,并且仍然了解测试功能时使用的范例。

我的代码:

其中 History 和 Graph 是 vector 的 vector 。

float calculateDeviation(int period) {
int x1 = history.front()[0];
int x2 = x1 + period;
int i = 0, minimum, maximum, SSres = 0, SStot = 0, j=0, R2 =0;
float average = 0;
int endTime = history.back()[0];
while (x2 <= history.back()[0]) {
average += averageGradient(x1, x2);
x1 = x2;
x2 += period;
}

x1 = history.front()[0];
x2 = x1 + period;
i++;
while (j < i) {
SSres += pow((graph[i][0]-((graph[i][2]*graph[i][0])+graph[i][3])), 2);
SStot += pow(graph[i][0] - average, 2);
x1 = x2;
x2 =+ period;
j++;
}

R2 = 1 - (SSres / SStot);
return history.back()[0];
}

最佳答案

我是一名测试工程师,根据您提供的内容,您应该能够编写包含以下内容的基本单元测试:

  1. 准备输入数据。这意味着您的“期间”变量,以及示例图形数据。作为图表和逻辑的作者,您应该能够创建其他工程师可以理解的简单数据集。
  2. 准备您的响应数据。这意味着“答案”。没有数据集来比较结果,任何测试都是不完整的。
  3. 在单元测试中,只需传入正确的输入数据,并根据预先验证的值验证结果。

请记住准备几组输入数据,包括边界(最小值、最大值和应该失败的值)。这通常是断点,所以一定要运行需要错误处理的测试。如果您能想出一种方法来破解您的代码,那么您就已经成功地确定了需要进行一些调整的区域。我的 friend ,这就是重点。 :)

关于c++ - 单元测试 C++ 代码的简单有效方法,您无法在纸上解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34595756/

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