我正在使用Visual Studio内置的C ++单元测试框架测试一些代码。测试只调用以下例程,然后执行Assert::AreEqual(returned_value, (float)1)
但是,所有其他测试都运行,这只是挂起。我不明白为什么循环会是无限循环,但我可能会遗漏一些东西。感谢。
vector< vector<float> > history;
vector< vector<float> > graph;
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;
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 R2;
}
测量以下数值&amp;在单元测试中返回。
history.size() = 15
history[5].size() = 14
graph.size() = 14
graph[1].size() = 4