10 #include <gtest/gtest.h>
14 #include <Eigen/Dense>
17 TEST(EigenAlignment, PrintAlignment)
22 std::cout <<
"MRPT_MAX_ALIGN_BYTES : " << MRPT_MAX_ALIGN_BYTES
24 "MRPT_MAX_STATIC_ALIGN_BYTES : "
25 << MRPT_MAX_STATIC_ALIGN_BYTES
27 "EIGEN_MAX_ALIGN_BYTES : "
28 << EIGEN_MAX_ALIGN_BYTES
30 "EIGEN_MAX_STATIC_ALIGN_BYTES : "
31 << EIGEN_MAX_STATIC_ALIGN_BYTES <<
"\n";
33 EXPECT_GE(MRPT_MAX_ALIGN_BYTES, EIGEN_MAX_ALIGN_BYTES);
34 EXPECT_GE(MRPT_MAX_STATIC_ALIGN_BYTES, EIGEN_MAX_STATIC_ALIGN_BYTES);
37 template <
unsigned int INTER_SPACE>
47 template <
unsigned int INTER_SPACE>
50 EXPECT_TRUE(mrpt::system::is_aligned<EIGEN_MAX_ALIGN_BYTES>(&d.
m1(0, 0)))
51 <<
"test: " << testName <<
"\nINTER_SPACE=" << INTER_SPACE
52 <<
"\nm1(0,0)=" <<
static_cast<const void*
>(&d.
m1(0, 0))
53 <<
"\nFailed against: EIGEN_MAX_ALIGN_BYTES=" << EIGEN_MAX_ALIGN_BYTES;
54 EXPECT_TRUE(mrpt::system::is_aligned<EIGEN_MAX_ALIGN_BYTES>(&d.
m2(0, 0)))
55 <<
"test: " << testName <<
"\nINTER_SPACE=" << INTER_SPACE
56 <<
"\nm2(0,0)=" <<
static_cast<const void*
>(&d.
m2(0, 0))
57 <<
"\nFailed against: EIGEN_MAX_ALIGN_BYTES=" << EIGEN_MAX_ALIGN_BYTES;
60 template <
unsigned int INTER_SPACE>
66 template <
unsigned int INTER_SPACE>
69 do_test_AlignedMemOnStack<INTER_SPACE>();
70 if constexpr (INTER_SPACE > 0)
74 template <
unsigned int INTER_SPACE>
77 std::map<int, Foo<INTER_SPACE>> d;
78 for (
int i = 0; i < 100; i++) d[i * 3 + i * i * 4 + 1];
82 template <
unsigned int INTER_SPACE>
85 do_test_AlignedMemInSTL<INTER_SPACE>();
86 if constexpr (INTER_SPACE > 0)
90 TEST(EigenAlignment, AlignedMemOnStack) { do_test_AlignedMemOnStackUpTo<20>(); }
92 TEST(EigenAlignment, AlignedMemInSTL) { do_test_AlignedMemInSTLUpTo<20>(); }