Fixed calculate_nnz and added unit test
parent
19602bbb0b
commit
3c68d20ff2
|
@ -283,11 +283,11 @@ size_t optimizeWildfireNonRecursive(const boost::shared_ptr<CLIQUE>& root, doubl
|
|||
/* ************************************************************************* */
|
||||
template<class CLIQUE>
|
||||
void nnz_internal(const boost::shared_ptr<CLIQUE>& clique, int& result) {
|
||||
int dimR = (*clique)->dim();
|
||||
int dimSep = (*clique)->get_S().cols() - dimR;
|
||||
int dimR = clique->conditional()->rows();
|
||||
int dimSep = clique->conditional()->get_S().cols();
|
||||
result += ((dimR+1)*dimR)/2 + dimSep*dimR;
|
||||
// traverse the children
|
||||
BOOST_FOREACH(const typename CLIQUE::shared_ptr& child, clique->children_) {
|
||||
BOOST_FOREACH(const typename CLIQUE::shared_ptr& child, clique->children) {
|
||||
nnz_internal(child, result);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -815,6 +815,16 @@ TEST(ISAM2, marginalCovariance)
|
|||
EXPECT(assert_equal(expected, actual));
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
TEST(ISAM2, calculate_nnz)
|
||||
{
|
||||
ISAM2 isam = createSlamlikeISAM2();
|
||||
int expected = 262;
|
||||
int actual = calculate_nnz(isam.roots().front());
|
||||
|
||||
EXPECT_LONGS_EQUAL(expected, actual);
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
int main() { TestResult tr; return TestRegistry::runAllTests(tr);}
|
||||
/* ************************************************************************* */
|
||||
|
|
Loading…
Reference in New Issue