template class sophus::LieGroupTestsΒΆ

#include <test_impl.h>

template <class TLieGroup>
class LieGroupTests {
public:
    // typedefs

    using LieGroup = TLieGroup ;
    using Scalar = typename LieGroup::Scalar ;
    using Transformation = typename LieGroup::Transformation ;
    using Tangent = typename LieGroup::Tangent ;
    using Point = typename LieGroup::Point ;
    using HomogeneousPoint = typename LieGroup::HomogeneousPoint ;
    using ConstPointMap = Eigen::Map<const Point> ;
    using Line = typename LieGroup::Line ;
    using Hyperplane = typename LieGroup::Hyperplane ;
    using Adjoint = typename LieGroup::Adjoint ;

    // fields

    static constexpr int kPointDim = LieGroup::kPointDim;
    static constexpr int kMatrixDim = LieGroup::kMatrixDim;
    static constexpr int kDoF = LieGroup::kDoF;
    static constexpr int kNumParameters = LieGroup::kNumParameters;

    // construction

    LieGroupTests(
        std::vector<LieGroup, Eigen::aligned_allocator<LieGroup>> const& group_vec,
        std::vector<Tangent, Eigen::aligned_allocator<Tangent>> const& tangent_vec,
        std::vector<Point, Eigen::aligned_allocator<Point>> const& point_vec
        );

    // methods

    bool adjointTest();

    template <class TG = LieGroup>
    std::enable_if_t<std::is_same<TG, So3<Scalar>>::value||std::is_same<TG, Se3<Scalar>>::value, bool> leftJacobianTest();

    template <class TG = LieGroup>
    std::enable_if_t<!(std::is_same<TG, So3<Scalar>>::value||std::is_same<TG, Se3<Scalar>>::value), bool> leftJacobianTest();

    bool moreJacobiansTest();
    bool contructorAndAssignmentTest();
    bool derivativeTest();

    template <class TG = LieGroup>
    bool additionalDerivativeTest();

    bool productTest();
    bool expLogTest();
    bool expMapTest();
    bool groupActionTest();
    bool lineActionTest();
    bool planeActionTest();
    bool lieBracketTest();
    bool veeHatTest();
    bool newDeleteSmokeTest();
    bool interpolateAndMeanTest();
    bool testRandomSmoke();

    template <class TS = Scalar>
    std::enable_if_t<std::is_same<TS, float>::value, bool> testSpline();

    template <class TS = Scalar>
    std::enable_if_t<!std::is_same<TS, float>::value, bool> testSpline();

    template <class TS = Scalar>
    std::enable_if_t<std::is_floating_point<TS>::value, bool> doAllTestsPass();

    template <class TS = Scalar>
    std::enable_if_t<!std::is_floating_point<TS>::value, bool> doAllTestsPass();
};