Vector是,另一个不是在Visual Studio单元测试中持久存在

时间:2015-12-17 23:21:09

标签: c++ visual-studio unit-testing

在我的C ++库中,我有两个全局定义的向量。

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

我是单元测试的新手,并试图弄清楚这些全局定义的向量是否从测试持续到测试。我有两个相同的历史测试,一个接一个,第一个通过,第二个失败。当我在第一次测试结束时添加history.clear()时,问题停止并且都通过了。所以这让我觉得他们显然是坚持不懈的。但是,在一次测试中,我调用下面的drawGraph例程,然后检查它的大小 - 它已被填充。但是,在下一个顺序测试graph.size()等于零。我正在使用Visual Studio 2015,它内置于单元测试框架中。这是为什么?

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;
    graph.clear();
    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();
    }
};

0 个答案:

没有答案