looking at fix Values of FixedInsertDynamicRead

release/4.3a0
Jing Dong 2015-04-04 17:13:58 -04:00
parent a178511257
commit 9755b95e89
2 changed files with 32 additions and 4 deletions

View File

@ -281,7 +281,7 @@ namespace gtsam {
}
}
};
/*
// Handle dynamic matrices
template<int N>
struct handle<Eigen::Matrix<double, -1, N> > {
@ -296,6 +296,8 @@ namespace gtsam {
}
};
*/
// Request for a fixed vector
template<int M>
struct handle<Eigen::Matrix<double, M, 1> > {
@ -329,6 +331,8 @@ namespace gtsam {
}
}
};
} // internal
/* ************************************************************************* */

View File

@ -476,16 +476,40 @@ TEST(Values, Destructors) {
}
/* ************************************************************************* */
TEST(Values, FixedVector) {
TEST(Values, VectorDynamicInsertFixedRead) {
Values values;
Vector v(3); v << 5.0, 6.0, 7.0;
values.insert(key1, v);
Vector3 expected(5.0, 6.0, 7.0);
CHECK(assert_equal((Vector)expected, values.at<Vector3>(key1)));
Vector3 actual = values.at<Vector3>(key1);
CHECK(assert_equal(expected, actual));
CHECK_EXCEPTION(values.at<Vector7>(key1), exception);
}
/* ************************************************************************* */
TEST(Values, FixedMatrix) {
TEST(Values, VectorFixedInsertDynamicRead) {
Values values;
Vector3 v; v << 5.0, 6.0, 7.0;
values.insert(key1, v);
Vector expected(3); expected << 5.0, 6.0, 7.0;
Vector actual(3); actual = values.at<Vector>(key1);
//CHECK(assert_equal(expected, actual));
CHECK_EXCEPTION(values.at<Vector7>(key1), exception);
}
/* ************************************************************************* */
TEST(Values, VectorFixedInsertFixedRead) {
Values values;
Vector3 v; v << 5.0, 6.0, 7.0;
values.insert(key1, v);
Vector3 expected; expected << 5.0, 6.0, 7.0;
Vector3 actual = values.at<Vector3>(key1);
//CHECK(assert_equal(expected, actual));
CHECK_EXCEPTION(values.at<Vector7>(key1), exception);
}
/* ************************************************************************* */
TEST(Values, MatrixDynamicInsertFixedRead) {
Values values;
Matrix v(1,3); v << 5.0, 6.0, 7.0;
values.insert(key1, v);