有人有使用Eigen和GoogleTest的经验吗?
Anyone have experience using Eigen and GoogleTest together?
所以我正在写一个基于数学的图形库。许多类使用特征作为底层数据结构。例如,我的二维矢量类包装了一个Vector2d,并为我的渲染引擎添加了一些特定的功能。我还使用google的测试框架编写了各种各样的测试。
使用这些测试,我在运行测试时得到以下错误:
Assertion failed: (reinterpret_cast<size_t>(array) & 0xf) == 0 && "this assertio
n is explained here: " "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalign
edArrayAssert.html" " **** READ THIS WEB PAGE !!! ****", file c:users***densestorage.h, line 86
我已经浏览了上面指定的文档并修复了我所能修复的一切(我添加了宏来覆盖new和delete),我不使用stl类,并且已经验证了我所有的函数都通过const引用传递。我有一种感觉,问题在于TEST和TEST_F宏的扩展方式。有人知道是怎么回事或者怎么解决吗?
我还应该注意到包含像Vector3d这样的非对齐类型的类没有问题。我想在不关闭内存对齐的情况下解决它,这样我就可以尽可能地保持效率。由于
这对我很有用。
namespace {
struct MyClass {
Eigen::Vector3f m_v3;
char m_c;
double m_d;
MyClass() {}
};
class MyClassTest : public ::testing::Test {
protected:
virtual void SetUp() {
}
virtual void TearDown() {}
MyClass m_c;
};
}
TEST_F(MyClassTest, test_eigen2)
{
this->m_c.m_v3[0] = 0.0;
this->m_c.m_v3[1] = 1.0;
this->m_c.m_v3[2] = 2.0;
for (int i = 0; i < 3; i++)
ASSERT_FLOAT_EQ(float(i), this->m_c.m_v3[i]);
}
相关文章:
- googletest:测试太大的数据结构
- 禁用自动捕获 Googletest 单元测试中的C++异常
- 这是GoogleTest AssertionResult中的错误吗?
- 何时返回指针与返回对象的一般经验法则?
- 如何释放 googletest ASSERT_THROW语句中的函数使用的资源?
- GoogleTest 在使用 libgtest_main.a 时给出多个主定义,或者在不使用 libgtest_main
- 是否可以直接将QString输入(例如)googletest的ADD_FAILURE()宏?
- 私有变量无法正常工作的C++getter方法(只有Java经验)
- googletest:测试基类具有纯虚拟方法的派生类时的核心转储
- 仅在使用 gradle 在 Travis CI 上编译时才"multiple definition" googletest 符号
- 使用 googletest 测试嵌入式C++代码时处理外设寄存器的重复符号
- 是什么导致macOS Mojave上的GoogleTest链接错误
- 静态指针指向这个为mock for googletest定义的类内部
- GoogleTest 中的参数化测试无法按预期工作
- 点云库 (PCL) - 声明点云时何时应使用 ::P tr 的经验法则?
- 有没有办法使用 googletest 创建自定义参数生成器?
- 尝试编译GoogleTest,但出现以下错误:尚未声明'::OpenThread'
- GoogleTest Framework似乎不适用于Lambda函数(后续)
- cmake googletest不运行测试,没有输出
- 有人有使用Eigen和GoogleTest的经验吗?