Cholesky unit test works now

release/4.3a0
Frank Dellaert 2010-11-08 20:34:45 +00:00
parent 93deac972c
commit 364a522382
1 changed files with 16 additions and 16 deletions

View File

@ -20,6 +20,7 @@
#include <iostream>
#include <boost/foreach.hpp>
#include <boost/numeric/ublas/triangular.hpp>
#include <boost/assign/std/vector.hpp>
using namespace boost::assign;
@ -31,6 +32,7 @@ using namespace boost::assign;
using namespace std;
using namespace gtsam;
using namespace noiseModel;
namespace ublas = boost::numeric::ublas;
static double sigma = 2, s_1=1.0/sigma, var = sigma*sigma, prc = 1.0/var;
static Matrix R = Matrix_(3, 3,
@ -196,7 +198,7 @@ TEST( NoiseModel, QR )
CHECK(linear_dependent(expectedRd2,Ab2,1e-6)); // Ab was modified in place !!!
}
///* ************************************************************************* */
/* ************************************************************************* */
//TEST( NoiseModel, QRColumnWise )
//{
// // Call Gaussian version
@ -206,26 +208,24 @@ TEST( NoiseModel, QR )
// SharedDiagonal actual = exampleQR::diagonal->QRColumnWise(Ab,firstZeroRows);
// SharedDiagonal expected = noiseModel::Unit::Create(4);
// CHECK(assert_equal(*expected,*actual));
// Matrix AbResized = sub(Ab, 0, actual->dim(), 0, Ab.size2());
// Matrix AbResized = ublas::triangular_adaptor<MatrixColMajor, ublas::upper>(Ab);
// print(exampleQR::Rd, "Rd: ");
// print(Ab, "Ab: ");
// print(AbResized, "AbResized: ");
// CHECK(linear_dependent(exampleQR::Rd,AbResized,1e-4)); // Ab was modified in place !!!
//}
//
///* ************************************************************************* */
//TEST(NoiseModel, Cholesky)
//{
// MatrixColMajor Ab = exampleQR::Ab; // otherwise overwritten !
// SharedDiagonal actual = exampleQR::diagonal->Cholesky(Ab);
// SharedDiagonal expected = noiseModel::Unit::Create(4);
// EXPECT(assert_equal(*expected,*actual));
// Matrix AbResized = sub(Ab, 0, actual->dim(), 0, Ab.size2());
// print(exampleQR::Rd, "Rd: ");
// print(Ab, "Ab: ");
// print(AbResized, "AbResized: ");
// EXPECT(linear_dependent(exampleQR::Rd,AbResized,1e-4)); // Ab was modified in place !!!
//}
/* ************************************************************************* */
TEST(NoiseModel, Cholesky)
{
MatrixColMajor Ab = exampleQR::Ab; // otherwise overwritten !
SharedDiagonal actual = exampleQR::diagonal->Cholesky(Ab);
SharedDiagonal expected = noiseModel::Unit::Create(4);
EXPECT(assert_equal(*expected,*actual));
// Ab was modified in place !!!
Matrix actualRd = ublas::triangular_adaptor<MatrixColMajor, ublas::upper>(Ab);
EXPECT(linear_dependent(exampleQR::Rd,actualRd,1e-4));
}
/* ************************************************************************* */
TEST(NoiseModel, QRNan )