2012-04-22 9 views
0

期待される配列と、自分の関数を呼び出すことによって生成された配列を比較する必要があります。私はこれが簡単な質問であることを知っていますが、私がQtに慣れていないので、誰も私にこれを手伝うことができます。私のコードは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"); 
     } 
    } 
} 

です。私はこのテストケースに何か問題があることを知っています。誰でも私にこれを書く正しい方法を教えてもらえますか?

+0

問題の原因を説明してください。 – Mat

+0

Qtユニットテストで2つの配列を比較するためのテストケースを書く方法を知らない – user1322915

+0

そのコードで問題があることを説明してください。何をしている/していないのですか?それはコンパイルされていない場合、エラーは何ですか?実行されると、何が起こりますか? – Mat

答えて

0

QCOMPAREだけでポインタ値ではなく、配列の要素の値を比較:

FAIL! : SC_tests::testSeemCarving() Compared pointers are not the same 
Actual (array): 0x93c6168 
Expected (array1): 0x92d9a50 
0

あなたは簡単に生のメモリCの配列でこれを行うことはできません - あなたは==を実装するクラスのいくつかの種類でそれらをラップする必要がありますオペレーター。

あなたがそれを行うことができない場合は、あなたが今持っているものはおそらくあなたが得ようとしている最高です。

関連する問題