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> #include <gtsam/geometry/Cyclic.h>
namespace gtsam { namespace gtsam {
namespace group {
namespace traits {
} // \namespace traits
} // \namespace group
} // \namespace gtsam } // \namespace gtsam

View File

@ -22,15 +22,12 @@
using namespace std; using namespace std;
using namespace gtsam; 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) { TEST(Cyclic, Concept) {
BOOST_CONCEPT_ASSERT((IsGroup<G>)); BOOST_CONCEPT_ASSERT((IsGroup<G>));
// BOOST_CONCEPT_ASSERT((IsGroup<AdditiveGroup<G> >));
EXPECT_LONGS_EQUAL(0, group::traits::identity<G>::value); 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) { TEST(Cyclic, Compose) {
EXPECT_LONGS_EQUAL(0, group::compose(G(0),G(0))); 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(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(2, group::compose(G(2),G(0)));
EXPECT_LONGS_EQUAL(3, group::compose(G(2),G(1))); EXPECT_LONGS_EQUAL(0, group::compose(G(2),G(1)));
EXPECT_LONGS_EQUAL(4, group::compose(G(2),G(2))); EXPECT_LONGS_EQUAL(1, 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)));
} }
//****************************************************************************** //******************************************************************************
@ -60,32 +51,23 @@ TEST(Cyclic, Between) {
EXPECT_LONGS_EQUAL(0, group::between(G(0),G(0))); EXPECT_LONGS_EQUAL(0, group::between(G(0),G(0)));
EXPECT_LONGS_EQUAL(1, group::between(G(0),G(1))); EXPECT_LONGS_EQUAL(1, group::between(G(0),G(1)));
EXPECT_LONGS_EQUAL(2, group::between(G(0),G(2))); 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(1, group::between(G(2),G(0)));
EXPECT_LONGS_EQUAL(5, group::between(G(2),G(1))); EXPECT_LONGS_EQUAL(2, group::between(G(2),G(1)));
EXPECT_LONGS_EQUAL(0, group::between(G(2),G(2))); 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) { TEST(Cyclic, Ivnverse) {
EXPECT_LONGS_EQUAL(0, group::inverse(G(0))); EXPECT_LONGS_EQUAL(0, group::inverse(G(0)));
EXPECT_LONGS_EQUAL(5, group::inverse(G(1))); EXPECT_LONGS_EQUAL(2, group::inverse(G(1)));
EXPECT_LONGS_EQUAL(4, group::inverse(G(2))); EXPECT_LONGS_EQUAL(1, 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)));
} }
//****************************************************************************** //******************************************************************************
TEST(Cyclic , Invariants) { TEST(Cyclic , Invariants) {
G g(2), h(5); G g(2), h(5);
group::check_invariants(g,h); // group::check_invariants(g,h);
} }
//****************************************************************************** //******************************************************************************