gpt4 book ai didi

c++ - gtest - 使用 EXPECT_EQ 报告循环的索引变量

转载 作者:行者123 更新时间:2023-12-02 03:02:58 27 4
gpt4 key购买 nike

我正在使用 gtest,但我是 gtest 的新手。我想对复杂数据结构的两个 std::vector 中的值进行比较。我想做这样的事情:

ASSERT_EQ(a.size(), b.size());

for (int x = 0; x < a.size(); x++) {
EXPECT_EQ(
sqrt(pow(a.real[x], 2) + pow(a.imag[x], 2)),
sqrt(pow(b.real[x], 2) + pow(b.imag[x], 2)));
}

这非常有用,因为对于不匹配,它会报告比较的值,例如5 != 7,但它不报告索引变量“x”。当检测到不匹配时,有什么方法可以轻松输出索引变量吗?

最佳答案

来自https://github.com/google/googletest/blob/main/docs/primer.md :

To provide a custom failure message, simply stream it into the macro using the << operator, or a sequence of such operators.

因此,如果您想输出预期等于的索引,您可以执行以下操作:

EXPECT_EQ(
sqrt(pow(a.real[x], 2) + pow(a.imag[x], 2)),
sqrt(pow(b.real[x], 2) + pow(b.imag[x], 2))) << "x is : " << x << std::endl;

关于c++ - gtest - 使用 EXPECT_EQ 报告循环的索引变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50843846/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com