Easier to read with Cyclic<3>

release/4.3a0
dellaert 2014-12-07 18:55:49 +01:00
parent 481be10509
commit 10ae9f5505
2 changed files with 9 additions and 32 deletions

View File

@ -18,10 +18,5 @@
#include <gtsam/geometry/Cyclic.h>
namespace gtsam {
namespace group {
namespace traits {
} // \namespace traits
} // \namespace group
} // \namespace gtsam

View File

@ -22,15 +22,12 @@
using namespace std;
using namespace gtsam;
typedef Cyclic<6> G; // Let's use the cyclic group of order 6
typedef Cyclic<3> G; // Let's use the cyclic group of order 3
//******************************************************************************
TEST(Cyclic, Concept) {
BOOST_CONCEPT_ASSERT((IsGroup<G>));
// BOOST_CONCEPT_ASSERT((IsGroup<AdditiveGroup<G> >));
EXPECT_LONGS_EQUAL(0, group::traits::identity<G>::value);
G g(2), h(3);
// EXPECT(Group<G>().check_invariants(g,h))
}
//******************************************************************************
@ -41,18 +38,12 @@ TEST(Cyclic, Constructor) {
//******************************************************************************
TEST(Cyclic, Compose) {
EXPECT_LONGS_EQUAL(0, group::compose(G(0),G(0)));
EXPECT_LONGS_EQUAL(1, group::compose(G(0),G(0)));
EXPECT_LONGS_EQUAL(1, group::compose(G(0),G(1)));
EXPECT_LONGS_EQUAL(2, group::compose(G(0),G(2)));
EXPECT_LONGS_EQUAL(3, group::compose(G(0),G(3)));
EXPECT_LONGS_EQUAL(4, group::compose(G(0),G(4)));
EXPECT_LONGS_EQUAL(5, group::compose(G(0),G(5)));
EXPECT_LONGS_EQUAL(2, group::compose(G(2),G(0)));
EXPECT_LONGS_EQUAL(3, group::compose(G(2),G(1)));
EXPECT_LONGS_EQUAL(4, group::compose(G(2),G(2)));
EXPECT_LONGS_EQUAL(5, group::compose(G(2),G(3)));
EXPECT_LONGS_EQUAL(0, group::compose(G(2),G(4)));
EXPECT_LONGS_EQUAL(1, group::compose(G(2),G(5)));
EXPECT_LONGS_EQUAL(0, group::compose(G(2),G(1)));
EXPECT_LONGS_EQUAL(1, group::compose(G(2),G(2)));
}
//******************************************************************************
@ -60,32 +51,23 @@ TEST(Cyclic, Between) {
EXPECT_LONGS_EQUAL(0, group::between(G(0),G(0)));
EXPECT_LONGS_EQUAL(1, group::between(G(0),G(1)));
EXPECT_LONGS_EQUAL(2, group::between(G(0),G(2)));
EXPECT_LONGS_EQUAL(3, group::between(G(0),G(3)));
EXPECT_LONGS_EQUAL(4, group::between(G(0),G(4)));
EXPECT_LONGS_EQUAL(5, group::between(G(0),G(5)));
EXPECT_LONGS_EQUAL(4, group::between(G(2),G(0)));
EXPECT_LONGS_EQUAL(5, group::between(G(2),G(1)));
EXPECT_LONGS_EQUAL(1, group::between(G(2),G(0)));
EXPECT_LONGS_EQUAL(2, group::between(G(2),G(1)));
EXPECT_LONGS_EQUAL(0, group::between(G(2),G(2)));
EXPECT_LONGS_EQUAL(1, group::between(G(2),G(3)));
EXPECT_LONGS_EQUAL(2, group::between(G(2),G(4)));
EXPECT_LONGS_EQUAL(3, group::between(G(2),G(5)));
}
//******************************************************************************
TEST(Cyclic, Ivnverse) {
EXPECT_LONGS_EQUAL(0, group::inverse(G(0)));
EXPECT_LONGS_EQUAL(5, group::inverse(G(1)));
EXPECT_LONGS_EQUAL(4, group::inverse(G(2)));
EXPECT_LONGS_EQUAL(3, group::inverse(G(3)));
EXPECT_LONGS_EQUAL(2, group::inverse(G(4)));
EXPECT_LONGS_EQUAL(1, group::inverse(G(5)));
EXPECT_LONGS_EQUAL(2, group::inverse(G(1)));
EXPECT_LONGS_EQUAL(1, group::inverse(G(2)));
}
//******************************************************************************
TEST(Cyclic , Invariants) {
G g(2), h(5);
group::check_invariants(g,h);
// group::check_invariants(g,h);
}
//******************************************************************************