2 #include <gtest/gtest.h>
4 #define EXPECT_VECTOR_DOUBLE_EQ(expect, actual) \
6 auto expectIter = expect.begin(); \
7 auto actualIter = actual.begin(); \
8 for(; expectIter != expect.end(); ++expectIter, ++actualIter) { \
9 EXPECT_DOUBLE_EQ(*expectIter, *actualIter); \
13 #define EXPECT_VECTOR_NEAR(expect, actual, tolerance) \
15 auto expectIter = expect.begin(); \
16 auto actualIter = actual.begin(); \
17 for(; expectIter != expect.end(); ++expectIter, ++actualIter) { \
18 EXPECT_NEAR(*expectIter, *actualIter, tolerance); \
22 #define EXPECT_MATRIX_DOUBLE_EQ(expect, actual) \
24 EXPECT_EQ(expect.size1(), actual.size1()); \
25 EXPECT_EQ(expect.size2(), actual.size2()); \
26 for (std::size_t ri = 0; ri < expect.size1(); ++ri) { \
27 for (std::size_t ci = 0; ci < expect.size2(); ++ci) { \
28 EXPECT_DOUBLE_EQ(expect(ri, ci), actual(ri, ci)); \
33 #define EXPECT_MATRIX_NEAR(expect, actual, tolerance) \
35 EXPECT_EQ(expect.size1(), actual.size1()); \
36 EXPECT_EQ(expect.size2(), actual.size2()); \
37 for (std::size_t ri = 0; ri < expect.size1(); ++ri) { \
38 for (std::size_t ci = 0; ci < expect.size2(); ++ci) { \
39 EXPECT_NEAR(expect(ri, ci), actual(ri, ci), tolerance); \