我正在爲尚未實現的函數編寫測試。在下面的代碼中,即使輸出和結果向量具有相同的值,QCOMPARE也會返回False。有人能解釋爲什麼嗎?爲什麼QCOMPARE在這種情況下返回True?
void EigenValuesTest::EigenValuesTestx2_data()
{
QTest::addColumn<Eigen::MatrixXd>("data");
Eigen::MatrixXd a(2,2);
a<<12,3,4,5;
QTest::newRow("0") << a ;
}
void EigenValuesTest::EigenValuesTestx2()
{
QFETCH(Eigen::MatrixXd, data);
Eigen::EigenSolver<Eigen::MatrixXd> es(data,false);
Eigen::Vector2cd result;
result << std::complex<double>(13.4244,0),std::complex<double>(3.57557,0);
Eigen::Vector2cd output;
output = es.eigenvalues();
QCOMPARE(result,output);
}
Eigen :: Vector2cd :: operator =='如何實現? –
@JeffreyvandeGlind我一直沒有找到關於==的任何文檔。 Eigen教程似乎只提到算術運算符。但是,如果我聲明兩個相同類型的向量並使用==比較它們,它將返回True。 –