两个向量过程以不同的值出现17倍

时间:2015-12-15 20:33:34

标签: c++ unit-testing

我正在构建一些使用向量并使用各种进程填充它们的子例程。其中一个过程是两个其他值的划分。但是,当我在两个不同的子程序中执行此操作时,我的单元测试表明它们并不相同。我今天犯了一些愚蠢的错误,如果很明显就道歉。下面的单元测试表明:

  

结果消息:断言失败。预期:其中-1.15741e-05>实际:其中-0.000208333>

我正在使用Visual Studio C ++测试框架。使用Assert中的margin变量显示所有值都在我预期的0.0005之内,但不是0.00005。我的代码产生的值比我预期的要小17倍。

我的代码出了什么问题?或者我如何测试/调试以使其清楚?

vector< vector<float> > history;
vector<float> values;
vector< vector<float> > graph;

void populateArray(int input, int time) {
    values.push_back(time);
    values.push_back(input);
    if (history.size() > 0) {
        values.push_back(values[0] - history.back()[0]);
        values.push_back(values[1] - history.back()[1]);
        values.push_back(values[3] / values[2]);
    }

    history.push_back(values);
    values.clear();
};

void drawGraph() {
    float m, c, j, x1, x2;
    vector<float> values;
    int i = 0;
    while (i < history.size() - 1) {
        j = i + 1;
        x1 = history[i][0];
        x2 = history[j][0];
        m = history[j][3] / history[j][2];
        c = history[i][1] - m*x2;
        i++;
        values.push_back(x1);
        values.push_back(x2);
        values.push_back(m);
        values.push_back(c);
        graph.push_back(values);
        values.clear();
    }
};

单元测试代码:

TEST_METHOD(Graph_Equations_Correct) {
    int i = 1;
    while (i < 10) {
        drawGraph();
        Assert::AreEqual(graph.at(i)[2], history.at(i)[4]);
        i++;
    }
}

0 个答案:

没有答案