0

我必须比较我的预期数组和通过调用我的函数生成的数组。我知道这是一个简单的问题,但由于我是 Qt 的新手,任何人都可以帮助我解决这个问题。我的代码是

void TesterClass::testevolve()
{
    float T[100][100],A[100][100];
    A[0][0]=0;
    A[0][1]=75;
    A[0][2]=75;
    A[0][3]=75;
    A[0][4]=0;
    A[1][0]=0;
    A[1][1]=42.857;
    A[1][2]=63.169;
    A[1][4]=30;
    A[2][0]=0;
    A[2][1]=33.258;
    A[2][3]=76.116;
    A[2][4]=30;
    A[3][0]=0;
    A[3][1]=33.928;
    A[3][2]=52.455;
    A[3][3]=69.642;
    A[3][4]=30;
    A[4][0]=0;
    A[4][1]=50;
    A[4][2]=50;
    A[4][4]=0;

    ClassInitiate ci;
    ClassOutput co;
    int i,j;
    float c[100][100]=ci.initializeArray(T[100][100]);
    co.output(c[100][100]);
    for(i=0;i<=4;i++)
    {
        for(j=0;j<4;j++)
        {
            QVERIFY2(A[i][j]==c[i][j], "evolving array failed");
        }
    }
}

我知道这个测试用例有问题。谁能告诉我写这个的正确方法。

4

2 回答 2

0

你不能用原始内存 C 数组轻松地做到这一点——你应该将它们包装在某种实现==运算符的类中。

如果你不能做到这一点,那么你现在拥有的可能是你将得到的最好的。

于 2012-04-22T15:15:49.750 回答
0

QCOMPARE 只是比较指针值,而不是数组元素值:

FAIL!  : SC_tests::testSeemCarving() Compared pointers are not the same
Actual (array): 0x93c6168
Expected (array1): 0x92d9a50
于 2012-04-22T15:12:29.743 回答