Added remaining VectorValuesUnordered unit tests
parent
a42cc71257
commit
ae66a0468b
|
@ -27,7 +27,9 @@ using namespace boost::assign;
|
|||
using namespace gtsam;
|
||||
|
||||
/* ************************************************************************* */
|
||||
TEST(VectorValues, insert) {
|
||||
TEST(VectorValuesUnordered, basics)
|
||||
{
|
||||
// Tests insert(), size(), dim(), exists(), vector()
|
||||
|
||||
// insert
|
||||
VectorValuesUnordered actual;
|
||||
|
@ -37,7 +39,7 @@ TEST(VectorValues, insert) {
|
|||
actual.insert(2, Vector_(2, 4.0, 5.0));
|
||||
|
||||
// Check dimensions
|
||||
LONGS_EQUAL(6, actual.size());
|
||||
LONGS_EQUAL(4, actual.size());
|
||||
LONGS_EQUAL(1, actual.dim(0));
|
||||
LONGS_EQUAL(2, actual.dim(1));
|
||||
LONGS_EQUAL(2, actual.dim(2));
|
||||
|
@ -57,7 +59,7 @@ TEST(VectorValues, insert) {
|
|||
EXPECT(assert_equal(Vector_(2, 2.0, 3.0), actual[1]));
|
||||
EXPECT(assert_equal(Vector_(2, 4.0, 5.0), actual[2]));
|
||||
EXPECT(assert_equal(Vector_(2, 6.0, 7.0), actual[5]));
|
||||
EXPECT(assert_equal(Vector_(7, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0), actual.asVector()));
|
||||
EXPECT(assert_equal(Vector_(7, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0), actual.vector()));
|
||||
|
||||
// Check exceptions
|
||||
CHECK_EXCEPTION(actual.insert(1, Vector()), invalid_argument);
|
||||
|
@ -65,7 +67,8 @@ TEST(VectorValues, insert) {
|
|||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
TEST(VectorValues, combine) {
|
||||
TEST(VectorValuesUnordered, combine)
|
||||
{
|
||||
VectorValuesUnordered expected;
|
||||
expected.insert(0, Vector_(1, 1.0));
|
||||
expected.insert(1, Vector_(2, 2.0, 3.0));
|
||||
|
@ -86,19 +89,73 @@ TEST(VectorValues, combine) {
|
|||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
TEST(VectorValues, subvector) {
|
||||
TEST(VectorValuesUnordered, subvector)
|
||||
{
|
||||
VectorValuesUnordered init;
|
||||
init.insert(0, Vector_(1, 1.0));
|
||||
init.insert(1, Vector_(2, 2.0, 3.0));
|
||||
init.insert(2, Vector_(2, 4.0, 5.0));
|
||||
init.insert(3, Vector_(2, 6.0, 7.0));
|
||||
init.insert(10, Vector_(1, 1.0));
|
||||
init.insert(11, Vector_(2, 2.0, 3.0));
|
||||
init.insert(12, Vector_(2, 4.0, 5.0));
|
||||
init.insert(13, Vector_(2, 6.0, 7.0));
|
||||
|
||||
std::vector<Key> keys;
|
||||
keys += 0, 2, 3;
|
||||
keys += 10, 12, 13;
|
||||
Vector expSubVector = Vector_(5, 1.0, 4.0, 5.0, 6.0, 7.0);
|
||||
EXPECT(assert_equal(expSubVector, init.vector(keys)));
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
TEST(VectorValuesUnordered, LinearAlgebra)
|
||||
{
|
||||
VectorValuesUnordered test1;
|
||||
test1.insert(0, Vector_(1, 1.0));
|
||||
test1.insert(1, Vector_(2, 2.0, 3.0));
|
||||
test1.insert(5, Vector_(2, 6.0, 7.0));
|
||||
test1.insert(2, Vector_(2, 4.0, 5.0));
|
||||
|
||||
VectorValuesUnordered test2;
|
||||
test2.insert(0, Vector_(1, 6.0));
|
||||
test2.insert(1, Vector_(2, 1.0, 6.0));
|
||||
test2.insert(5, Vector_(2, 4.0, 3.0));
|
||||
test2.insert(2, Vector_(2, 1.0, 8.0));
|
||||
|
||||
// Dot product
|
||||
double dotExpected = test1.vector().dot(test2.vector());
|
||||
double dotActual = test1.dot(test2);
|
||||
DOUBLES_EQUAL(dotExpected, dotActual, 1e-10);
|
||||
|
||||
// Norm
|
||||
double normExpected = test1.vector().norm();
|
||||
double normActual = test1.norm();
|
||||
DOUBLES_EQUAL(normExpected, normActual, 1e-10);
|
||||
|
||||
// Squared norm
|
||||
double sqNormExpected = test1.vector().norm();
|
||||
double sqNormActual = test1.norm();
|
||||
DOUBLES_EQUAL(sqNormExpected, sqNormActual, 1e-10);
|
||||
|
||||
// Addition
|
||||
Vector sumExpected = test1.vector() + test2.vector();
|
||||
VectorValuesUnordered sumActual = test1 + test2;
|
||||
EXPECT(sumActual.hasSameStructure(test1));
|
||||
EXPECT(assert_equal(sumExpected, sumActual.vector()));
|
||||
Vector sum2Expected = sumActual.vector() + test1.vector();
|
||||
VectorValuesUnordered sum2Actual = sumActual;
|
||||
sum2Actual += test1;
|
||||
EXPECT(assert_equal(sum2Expected, sum2Actual.vector()));
|
||||
|
||||
// Subtraction
|
||||
Vector difExpected = test1.vector() - test2.vector();
|
||||
VectorValuesUnordered difActual = test1 - test2;
|
||||
EXPECT(difActual.hasSameStructure(test1));
|
||||
EXPECT(assert_equal(difExpected, difActual.vector()));
|
||||
|
||||
// Scaling
|
||||
Vector scalExpected = test1.vector() * 5.0;
|
||||
VectorValuesUnordered scalActual = test1;
|
||||
scalActual *= 5.0;
|
||||
EXPECT(assert_equal(scalExpected, scalActual.vector()));
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
int main() { TestResult tr; return TestRegistry::runAllTests(tr); }
|
||||
/* ************************************************************************* */
|
||||
|
|
Loading…
Reference in New Issue