Removed checks on sizeof(Record) as non-portable.
parent
26d74a1f6e
commit
5c3dd7914b
|
@ -186,25 +186,8 @@ TEST(ExpressionFactor, Binary) {
|
|||
values.insert(1, Cal3_S2());
|
||||
values.insert(2, Point2(0, 0));
|
||||
|
||||
// traceRaw will fill raw with [Trace<Point2> | Binary::Record]
|
||||
EXPECT_LONGS_EQUAL(8, sizeof(double));
|
||||
EXPECT_LONGS_EQUAL(16, sizeof(Point2));
|
||||
EXPECT_LONGS_EQUAL(40, sizeof(Cal3_S2));
|
||||
EXPECT_LONGS_EQUAL(16, sizeof(internal::ExecutionTrace<Point2>));
|
||||
EXPECT_LONGS_EQUAL(16, sizeof(internal::ExecutionTrace<Cal3_S2>));
|
||||
EXPECT_LONGS_EQUAL(2*5*8, sizeof(internal::Jacobian<Point2,Cal3_S2>::type));
|
||||
EXPECT_LONGS_EQUAL(2*2*8, sizeof(internal::Jacobian<Point2,Point2>::type));
|
||||
size_t expectedRecordSize = sizeof(Cal3_S2)
|
||||
+ sizeof(internal::ExecutionTrace<Cal3_S2>)
|
||||
+ +sizeof(internal::Jacobian<Point2, Cal3_S2>::type) + sizeof(Point2)
|
||||
+ sizeof(internal::ExecutionTrace<Point2>)
|
||||
+ sizeof(internal::Jacobian<Point2, Point2>::type);
|
||||
EXPECT_LONGS_EQUAL(expectedRecordSize + 8, sizeof(Binary::Record));
|
||||
|
||||
// Check size
|
||||
size_t size = binary.traceSize();
|
||||
CHECK(size);
|
||||
EXPECT_LONGS_EQUAL(expectedRecordSize + 8, size);
|
||||
// Use Variable Length Array, allocated on stack by gcc
|
||||
// Note unclear for Clang: http://clang.llvm.org/compatibility.html#vla
|
||||
internal::ExecutionTraceStorage traceStorage[size];
|
||||
|
@ -261,18 +244,7 @@ TEST(ExpressionFactor, Shallow) {
|
|||
// traceExecution of shallow tree
|
||||
typedef internal::UnaryExpression<Point2, Point3> Unary;
|
||||
typedef internal::BinaryExpression<Point3, Pose3, Point3> Binary;
|
||||
size_t expectedTraceSize = sizeof(Unary::Record) + sizeof(Binary::Record);
|
||||
EXPECT_LONGS_EQUAL(96, sizeof(Unary::Record));
|
||||
#ifdef GTSAM_USE_QUATERNIONS
|
||||
EXPECT_LONGS_EQUAL(352, sizeof(Binary::Record));
|
||||
LONGS_EQUAL(96+352, expectedTraceSize);
|
||||
#else
|
||||
EXPECT_LONGS_EQUAL(384, sizeof(Binary::Record));
|
||||
LONGS_EQUAL(96+384, expectedTraceSize);
|
||||
#endif
|
||||
size_t size = expression.traceSize();
|
||||
CHECK(size);
|
||||
EXPECT_LONGS_EQUAL(expectedTraceSize, size);
|
||||
internal::ExecutionTraceStorage traceStorage[size];
|
||||
internal::ExecutionTrace<Point2> trace;
|
||||
Point2 value = expression.traceExecution(values, trace, traceStorage);
|
||||
|
|
Loading…
Reference in New Issue