我正在为尚未实现的函数编写测试。在下面的代码中,即使输出和结果向量具有相同的值,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。 –